欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

flink-on-yarn解读

程序员文章站 2022-06-17 09:22:21
...

相关参考资料: https://blog.csdn.net/wangweislk/article/details/79081769 【好文欣赏】


flink on yarn 有两种使用方式:
方式一:
在安装和flink相关包的机器上执行如下命令 (此处已经配置好flink环境变量):

第一步:1.使用yarn-session启动相应的容器资源,初始化一个flink集群

HADOOP_HOME=/hadoop/hadoop-2.7.2/  
HADOOP_CONF_DIR=/hadoop/hadoop-2.7.2/etc/hadoop/ 
yarn-session.sh -nm "Flink test2" -n 9 -jm 8192 -tm 8192 -s 8 

这条命令表示,我通过yarn资源管理给flink申请了相应的资源,一共是9个taskManager,每个taskManager有8G,每个taskManager有8 个线程(一般小于服务器中的线程数量【没有超线程的话就是cpu的核心core的数量】);-nm表示申请的flink集群资源的名称,在yarn-web ui上可见。
flink-on-yarn解读
第二步:
提交flink任务到yarn集群中,有两种方式:web ui提交和命令行提交。
(1)使用yarn界面flink web ui界面直接提交flink任务

flink-on-yarn解读

在初始化好的yarn资源容器中,如图,点击如上(主要我使用的flink是1.6.0版本的,之前使用的1.4.2的版本不支持web ui提交).
(2)或者使用命令行

###其中的 -p 72      则表示9个taskManager,用完其中每个8core(线程),一共使用完成72个core
###注意:设置的并发度不能大于你定义的逻辑分区的个数,否则导致cpu资源core浪费
###例如:你使用partitionByHash进行分区,一共50个分区,自己却使用72个core处理,导致还有22个core处于无任务可做的闲置状态。
./flink run -m jobmanagerIP:Port -p 72 -c  xxx.xxx.xx.WorldCountMain /home/myFlinlkCount.jar

注意事项

HADOOP_HOME=/hadoop/hadoop-2.7.2/  
HADOOP_CONF_DIR=/hadoop/hadoop-2.7.2/etc/hadoop/ 

此处,需要配置好相应的环境变量,如果没有配置相应的环境变量,需要在执行yarn-session中声明相应的环境变量,否则导致flink读取hadoop中yarn配置信息、hdfs配置文件信息失败。

方式二
使用flink自带命令,提交任务到相应的yarn-flink集群环境

./flink run 
-m yarn-cluster 
-yn 9 
-c myflink.main.BargeMain_v2 
./BargeStatistic-1.0-SNAPSHOT-jar-with-dependencies.jar

以上命令表示:提交相应的flink 批处理程序到集群中,并重新指定相应的app需要的资源(此处有9 个taskManager)。
其中也是可以 添加如下参数:

 -p,--parallelism <parallelism>                 
 ## 可以指定app程序的并行度,此处指定时候,可以覆盖掉配置文件中的默认值

具体的并发度参考如下:
flink-on-yarn解读
设置并发度根据如上重新设置并发度即可