flink的提交任务方式:
直接通过代码进行local提交
= ExecutionEnvironment.createLocalEnvironment()
通过代码进行remote远程提交
ExecutionEnvironment.createRemoteEnvironment("remote_host",port,"jar_path")
- standalone 提交
提交节点是flink节点
run -p 1 -c cn.peekstar.wordcount ./flink-practice.jar -d
- 通过yarn 进行提交
- 提交的方式有两种一种是flink sesssion 另外一种是yarn-cluster
yarn session的方式适合资源占用方式较少的小批量作业
yarn-session -jm 1024m -nm flinkOnYarnTest -s 1 -tm 1024m -d
yarn-session --applicationId <application_id>
flink run -c classname <jar>
yarn cluster 的方式:
flink run -m yarn-cluster -yd -yjm 1024m -ytm 1024m -ynm <name> -ys 1 <jar> <arguments>
flink 在yarn上的提交的流程
- 向yarn提交作业
- yarn 启动application master 其中am 包含三个部分dispatcher,resourceManager,JobManager
dispatcher: 接收用户提交的作业
resourceManager: 向cluster manager 申请资源
jobmanager: 管理作业生成jobGraph - 申请到资源后启动taskManager
- TaskExecutor 注册相应资源后再继续选择空闲资源进程分配
- 当接收到slot 注册的信息后jobmanager可以进行task的分发
- TaskExecutor 接收到task 后会启动进程执行任务并通过shuffle来交换数据以及通过snapshot(hdfs rockdb)进行快照的操作
跟spark提交的流程有相似之处,yarn-cluster的提交模式都比较相似。
本文由 妖言君 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Feb 21, 2021 at 02:43 pm