更新时间:2025-04-11 GMT+08:00
迁移Storm对接的外部安全组件业务
迁移Storm对接HDFS和HBase组件的业务
如果Storm的业务使用的storm-hdfs或者storm-hbase插件包进行的对接,那么在按照完整迁移Storm业务进行迁移时,需要指定特定安全参数,如下:
//初始化Storm的Config
Config conf = new Config();
//初始化安全插件列表
List<String> auto_tgts = new ArrayList<String>();
//添加AutoTGT插件
auto_tgts.add("org.apache.storm.security.auth.kerberos.AutoTGT");
//添加AutoHDFS插件
//如果对接HBase,则如下更改为:auto_tgts.add("org.apache.storm.hbase.security.AutoHBase");
auto_tgts.add("org.apache.storm.hdfs.common.security.AutoHDFS");
//设置安全参数
conf.put(Config.TOPOLOGY_AUTO_CREDENTIALS, auto_tgts);
//设置worker个数
conf.setNumWorkers(3);
//将Storm的Config转化为Flink的StormConfig
StormConfig stormConfig = new StormConfig(conf);
//使用Storm的TopologBuilder构造FlinkTopology
FlinkTopology topology = FlinkTopology.createTopology(builder);
//获取StreamExecutionEnvironment
StreamExecutionEnvironment env = topology.getExecutionEnvironment();
//将StormConfig设置到Job的环境变量中,用于构造Bolt和Spout
//如果Bolt和Spout初始化时不需要config,则不用设置
env.getConfig().setGlobalJobParameters(stormConfig);
//执行拓扑提交
topology.execute();
增加如上的安全插件配置后,可以避免HDFSBolt和HBaseBolt在初始化过程中的无谓登录,因为Flink已经实现准备好了安全上下文,无需再登录。
迁移Storm对接其他安全组件的业务
如果Storm的业务使用的storm-kafka-client等插件包进行的对接时,需要注意,之前所配置的安全插件需要去掉,如下:
List<String> auto_tgts = new ArrayList<String>();
//keytab方式
auto_tgts.add("org.apache.storm.security.auth.kerberos.AutoTGTFromKeytab");
//将客户端配置的plugin列表写入config指定项中
//安全模式必配
//普通模式不用配置,请注释掉该行
conf.put(Config.TOPOLOGY_AUTO_CREDENTIALS, auto_tgts);
如上所配置的AutoTGTFromKeytab插件在进行业务迁移时,必须删除,否则会引起相应Bolt或Spout初始化时登录异常。
父主题: 迁移Storm业务至Flink