对于Flink job需要的相关配置信息我们之前是放在每台机器上的固定文件目录下面的。为了方便后期维护我们把规则执行jar的配置文件放到hdfs里,由管理平台对其统一管理。我们是通过在管理平台配置flink on yarn运行依赖,直接调用本地api方式来运行job,运行时候需要的配置信息,直接从hdfs中获取。hdfs的ip和地址在启动job的时候传入。
另外Flink job的算子需要连接redis,那么连接redis的信息如何获取。之前我们是直接读取Flink 集群机器上的配置文件来获取的,配置文件的路径为固定的。比如:/data/rule/flink.properties这种方式有需要保证每台机器上都有这个配置文件,后期部署非常不方便,且不便于统一管理。目前采取的方式为:job启动的时候,将redis连接信息设置到环境中,然后算子执行的时候,直接读取到Flink环境里面的参数。代码如下:
设置参数:
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env);
...
tableEnv.getConfig().addJobParameter("hdfsPath",hdfsPath);
获取参数:
网友评论