功能說明
解決問題: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集羣