功能说明
解决问题:storm提交jar包到storm集群,将配置文件与jar包拓扑进行分离,单独配置
实现代码
入口代码,通过config配置传递自定义配置信息
public static void main(String[] args) {
Setting setting = ew Setting(args[0]); //args[0] 文件路径 Setting读取配置文件方法
final TopologyBuilder builder = new TopologyBuilder();
Config conf = new Config();
conf.put("test_key", setting.get("test_key")); //此处为自定义配置
StormSubmitter.submitTopology("test", conf, builder.createTopology());
}
bolt获取自定义参数
@Override
public void prepare(Map stormConf, TopologyContext context) {
context.getConf().get("test_key");
}
拓扑提交
storm jar xxxx.jar main函数拓扑入口 配置文件路径
storm jar test.jar com.test.topology.TestTopology /data/test/config-common.properties
config-common.properties
test_key:1234456
至此完成,自定义配置文件在jar外面,动态提交到storm集群