Flink1.18 & YARN 应用模式部署【推荐】
应用模式:用户代码在JobManger上解析、运行,而不是在客户端上进行
YARN上部署的过程:
客户端把 Flink 应用提交给 Yarn 的 ResourceManager,Yarn 的
ResourceManager 会向 Yarn 的 NodeManager 申请容器。在这些容器上,Flink 会部署 JobManager 和 TaskManager 的实例,从而启动集群。Flink 会根据运行在 JobManger 上的作业所需要的 Slot 数量动态分配 TaskManager 资源。
本文基于 Hadoop-3.3.6分布式集群搭建步骤
1.修改Hadoop环境变量,增加一些
vi /etc/profile.d/hadoop.sh
修改为如下:
export HADOOP_HOME=/usr/hadoop/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`
刷新
source /etc/profile
2.启动Hadoop集群
1.在hadoop02节点启动HDFS
sbin/start-dfs.sh
2.在配置了ResourceManager的节点(hadoop03)启动YARN
位于$HADOOP_HOME/sbin/start-yarn.sh
sbin/start-yarn.sh
3.应用模式部署
1.推送端运行netcat
作业基于此文章打包
Flink Java Demo
因此在提交任务前需要先在推送端运行netcat
nc -lp 7878
2.提交任务
/usr/flink/flink-1.18.0/bin/flink run-application -t yarn-application -c cn.coreqi.WordCountStreamUnboundedDemo /home/FlinkTutorial-1.0-SNAPSHOT.jar
2.*提交任务加速版
YARN的工作机制需要每次将Flink的库和插件以及任务的jar包上传到HDFS
如果我们手动将Flink的库和插件提前上传到HDFS,甚至将任务的jar包也提前上传到HDFS,将会加速任务的执行时间。
1.将Flink的库和插件上传至HDFS
hadoop fs -mkdir /flink-dist
hadoop fs -put /usr/flink/flink-1.18.0/lib /flink-dist
hadoop fs -put /usr/flink/flink-1.18.0/plugins /flink-dist
访问http://192.168.58.130:9870/explorer.html#/ 查看上传结果
2.将任务jar包上传至HDFS
hadoop fs -mkdir /flink-jars
hadoop fs -put /home/FlinkTutorial-1.0-SNAPSHOT.jar /flink-jars
3.提交任务
/usr/flink/flink-1.18.0/bin/flink run-application -t yarn-application -Dyarn.provided.lib.dirs="hdfs://192.168.58.130:8020/flink-dist" -c cn.coreqi.WordCountStreamUnboundedDemo hdfs://192.168.58.130:8020/flink-jars/FlinkTutorial-1.0-SNAPSHOT.jar
4.查看或取消作业
# 通过list查找到应用的jobId
/usr/flink/flink-1.18.0/bin/flink list -t yarn-application -Dyarn.application.id=application_1705543347998_0006
# 取消作业
/usr/flink/flink-1.18.0/bin/flink cancel -t yarn-application -Dyarn.application.id=application_1705543347998_0006 <jobId>
/usr/flink/flink-1.18.0/bin/flink cancel -t yarn-application -Dyarn.application.id=application_1705543347998_0006 0cc4bc91f31fbc6fd26189ce5ae242c1
这里的 application_XXXX_YY 是当前应用的 ID,是作业的 ID。注意如果取消作业,整个 Flink 集群也会停掉。
也可以在YARN的管理页面或者Flink WEB UI页面取消作业
作者:奇
出处:https://www.cnblogs.com/fanqisoft/p/17972629
版权:本作品采用「本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!