Storm配置详解

本文详细介绍了Storm的配置选项,包括Nimbus、Supervisor和拓扑的参数调整。讲解了如何通过storm.yaml文件覆盖默认配置,并在Spout和Bolt中内部或外部设置组件配置。还阐述了配置的优先级以及一些关键配置项,如storm.zookeeper.servers、storm.local.dir和nimbus.host等。最后提到了Config类在设置拓扑特定配置时的作用。
摘要由CSDN通过智能技术生成

Storm配置类型

Storm有大量的配置,可以调整Nimbus、Supervisor、拓扑运行的参数,大部分是可以进行调节的,但是也有少部分配置是不能修改的系统配置。每个配置会有一个默认值,该值定义在Storm代码库的defaults.yaml文件中。在Nimbus和Supervisor的类路径中定义一个storm.yaml文件,可以覆盖这些配置值。使用StormSubmitter提交拓扑的时候,可以定义一个指定拓扑的配置,但是只能覆盖前缀为TOPOLOGY的配置项。

Storm0.7.0以后的版本开始允许在Spout/Bolt中覆盖配置,可以修改的配置主要有:

"topology.debug"
"topology.max.spout.pending"
"topology.max.task.parallelism"
"topology.kryo.register"
注:topology.kryo.register与其他的配置有所不同,它的序列化会应用到拓扑上的所有组件。


Storm的Java API也提供了两种方式指定组件的配置:

1.内部的(Internally)配置

在Spout或者Bolt类中,覆盖getComponentConfiguration方法,返回组件配置的Map对象,getComponentConfiguration方法定义如下:

@Override
	public Map<String, Object> getComponentConfiguration() {
		// TODO Auto-generated method stub
		return null;
	}
注:我们只要以Map的形式返回我们所要配置的参数即可。


2.外部的(Externally)配置

使用TopologyBuilder类的setSpout方法返回SpoutDeclarer对象,使用setBolt方法返回BoltDeclarer对象。SpoutDeclarer与BoltDeclarer实现了ComponentConfigurationDeclarer接口,该接口有addConfiguration方法和addConfigurations方法,可以通过调用这两个方法来覆盖组件的配置。

SpoutDeclarer接口的定义代码如下:

public interface SpoutDeclarer extends ComponentConfigurationDeclarer{
}

BoltDeclarer接口的定义代码如下:

publ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值