计划将之前部署好的flink1.10升级到1.11.2。
flink压缩包官方下载链接
首次进行设置的话可以参考flink社区提供的入门文档,根据自己情况进行设置。
Apache Flink 零基础入门(三):开发环境搭建和应用的配置、部署及运行
下面是自己配置的基本参数,可以根据自己的集群性能和要求按官方文档进行修改
jobmanager.rpc.address: cdh2 jobmanager.rpc.port: 6123 jobmanager.heap.size: 1024m taskmanager.memory.process.size: 1024m taskmanager.numberOfTaskSlots: 8 parallelism.default: 1 high-availability: zookeeper high-availability.zookeeper.path.root: /flink task.cancellation.timeout: 0 high-availability.storageDir: hdfs:///flink/ha/ high-availability.zookeeper.quorum: cdh3:2181,cdh4:2181,cdh5:2181 yarn.application-attempts: 10 jobmanager.execution.failover-strategy: region rest.port: 9250
flink-shaded-hadoop-3-uber-3.1.1.7.1.1.0-565-9.0.jar
hadoop-yarn-api-3.1.1.3.1.4.0-315.jar
jersey-client-1.9.jar
jersey-core-1.9.jar
jsr311-api-1.1.1.jar
maven仓库
flink1.11已经不需要通过额外引入jar包来支持此功能,但是必须配置YARN_CONF_DIR、HADOOP_CLASSPATH来支持与yarn集群的调度。
进入/etc/profile.d隐藏目录,创建hadoop.sh.并增加如下内容即可:
HADOOP_HOME=/usr/hdp/3.1.4.0-315/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop export HADOOP_CLASSPATH='hadoop classpath'per Job模式每提交一个任务都会创建一个flink yarn资源调度器(ResourceManager ),一旦job执行完了所有占用的资源都会回收掉,比较适合长时间作业的任务,比如无限数据流的实时计算。
session cluster模式的flink yarn资源管理器(ResourceManager )是复用的,直接在yarn上创建一个flink集群来接受任务。所以在提交任务频繁的情况下,可以节约创建flink yarn资源管理器(ResourceManager )的时间,提升执行效率。适合离线批处理任务。
结合自身集群服务器不大,且全部都是实时计算的特点,这边选择直接使用Per Job cluster模式执行flink任务。
直接在flink/bin路径下,执行./flink run -m yarn-cluster /root/cliu_bi_job/UserCenterCount.jar
可以看到任务已经提交,flink集群已经起来运行了,提交在cdh3上启动的服务。可以收工跑路了。
之前首次安装clouder manage、kafka、flume配置的时候明明踩坑了好多,也花费了不少时间去解决问题。但是都只有十分简单的记录。导致在下次升级或者重装的时候因为没有详细的笔记或记录,导致并没有因为有踩坑经验减少处理的时间。
目前根据集群和业务特点选择了Per Job cluster模式提交任务,但是公司有很多需要跑的任务要提交到集群上。使用Per Job cluster模式提交的时候,在哪台服务器启动flink job manager服务是不确定的。导致不同业务的任务随机分配到不同机器上,不方便使用Web UI 查看任务的运行状态。
这个 问题目前还没有找到解决方案。打算找找flink官方的文档,查找一下解决方案。到时候也出一个笔记记录一下。