当前位置:   article > 正文

flink on yarn 部署方案_flinkonyarn集群部署

flinkonyarn集群部署

FLINK ON YARN 3种部署方式:
在生产中建议使用 Per-job 或 Application Mode 模式部署 Flink 应用程序,这些模式为应用程序提供了更好的隔离.
一个任务启动一个Flink集群, 各个 Flink 集群之间独立运行, 互不影响, 而且每个集群可以单独进行配置。

1、Application Mode (应用模式)

特点

每次递交作业都需要申请一次资源

优点

  1. main 方法在集群中执行, 不是执行在客户端
  2. 运行时所需的依赖项, 并生成 JobGraph 都在Yarn集群中执行, 有效减少客户端带宽、性能的消耗, 从而防止客户端压力过大
  3. 允许应用程序包含多个Job, 多个Job顺序执行

使用

该模式将在 YARN 上启动 Flink 集群,其中应用程序 jar 的 main() 方法在 YARN 中的 JobManager 上执行, 应用程序完成后,集群将立即关闭。

常用的启动命令, 启动后会得到一个 applicatid

./bin/flink run-application
-t yarn-application
-yjm 1024
-ytm 1024
-d
-c org.apache.flink.streaming.examples.socket.SocketWindowWordCount
examples/streaming/SocketWindowWordCount.jar
–port 9000

列出运行在集群中的任务(通过 -Dyarn.application.id 可以查看指定 application.id 中执行的 Job)

./bin/flink list
-t yarn-application
-Dyarn.application.id=application_XXXX_YY

取消job

./bin/flink cancel
-t yarn-application
-Dyarn.application.id=application_XXXX_YY

优化 为了让整个应用得到更快的响应,我们可以把 jar 等文件上传到指定的 HDFS 路径,这样应用在执行的时候可以直接从指定的路径获取,而不是从 client 上传。

./bin/flink run-application -t yarn-application
-Dyarn.provided.lib.dirs=“hdfs://myhdfs/my-remote-flink-dist-dir”
hdfs://myhdfs/jars/my-application.jar

2、Per-Mode (Job 分离模式)

特点

每次递交作业都需要申请一次资源

优点

  1. 作业运行完成, 资源会立刻被释放, 不会一直占用系统资源
  2. 每个作业都是一个Flink集群, 不同资源之间做到了很好的资源隔离, 且不同的作业可以进行单独的配置

缺点

  1. 每次递交作业都需要申请资源, 会影响执行效率, 因为申请资源需要消耗时间
  2. main 方法在客户端执行, 在客户端提交给 JobManager

应用场景

适合作业比较少的场景、大作业的场景

启动命令

./bin/flink run
-t yarn-per-job
-yjm 1024
-ytm 1024
-d
-c org.apache.flink.streaming.examples.socket.SocketWindowWordCount
examples/streaming/SocketWindowWordCount.jar
–port 9000

3、Session Mode(会话模式)

特点

所有作业共享集群资源

优点

根据指定的资源参数初始化一个Flink集群,资源只需要一次申请

缺点

  1. 隔离性差, JM 负载瓶颈
  2. main 方法在客户端执行

应用场景

对延迟非常敏感但运行时长较短的作业

会话模式有两种操作模式

attached mode(默认)

yarn-session.sh 客户端将 Flink 集群提交给 YARN, 但客户端一直在运行, 不会退出
如果集群失败, 客户端将显示错误; 如果客户端被终止, 它也会发出集群关闭的信号

detached mode (-d or --detached)

yarn-session.sh 客户端将 Flink 集群提交给 YARN,然后客户端返回并退出
需要再次调用客户端或 YARN 工具来停止 Flink 集群

启动命令

./bin/yarn-session.sh
-yjm 1024
-ytm 1024
-d

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/941744
推荐阅读
相关标签
  

闽ICP备14008679号