Flink1.10从0到1:(四)Flink On Yarn 和命令详解

一、简介

        Flink on Yarn 模式的原理是依靠 YARN 来调度 Flink 任务,目前在企业中使用较多。这种模式的好处是可以充分利用集群资源,提高集群机器的利用率,并且只需要 1 套 Hadoop集群,就可以执行 MapReduce 和 Spark 任务,还可以执行 Flink 任务等,操作非常方便,不需要维护多套集群,运维方面也很轻松。Flink on Yarn 模式需要依赖 Hadoop 集群,并且Hadoop 的版本需要是 2.2 及以上。

PS:本人运行环境是基于cloudera搭建的集群环境,CDH版本6.2.0,Hadoop3.0.0,Flink1.10。

 

1、当启动一个新的 Flink YARN Client 会话时,客户端首先会检查所请求的资源(容器和内存)是否可用。之后,它会上传 Flink 配置和 JAR 文件到 HDFS。

2、客 户 端 的 下 一 步 是 请 求 一 个 YARN 容 器 启 动 ApplicationMaster 。 JobManager 和ApplicationMaster(AM)运行在同一个容器中,一旦它们成功地启动了,AM 就能够知道JobManager 的地址,它会为 TaskManager 生成一个新的 Flink 配置文件(这样它才能连上 JobManager),该文件也同样会被上传到 HDFS。另外,AM 容器还提供了 Flink 的Web 界面服务。Flink 用来提供服务的端口是由用户和应用程序 ID 作为偏移配置的,这使得用户能够并行执行多个 YARN 会话。

3、之后,AM 开始为 Flink 的 TaskManager 分配容器(Container),从 HDFS 下载 JAR 文件和修改过的配置文件。一旦这些步骤完成了,Flink 就安装完成并准备接受任务了。

 

二、Flink on Yarn 模式在使用的时候又可以分为两种:

1)第 1 种模式(Session-Cluster):

        在 YARN 中提前初始化一个 Flink 集群(称为 Flink yarn-session),开辟指定的资源,以后的 Flink 任务都提交到这里。这个 Flink 集群会常驻在 YARN 集群中,除非手工停止。这种方式创建的 Flink 集群会独占资源,不管有没有 Flink 任务在执行,YARN 上面的其他任务都无法使用这些资源。

2)第 2 种模式(Per-Job-Cluster):

        每次提交 Flink 任务都会创建一个新的 Flink 集群,每个 Flink 任务之间相互独立、互不影响,管理方便。任务执行完成之后创建的 Flink集群也会消失,不会额外占用资源,按需使用,这使资源利用率达到最大。

PS:本人在工作中使用的是第2种模式。本教程也是基于Flink On Yarn模式的。一般情况下推荐使用这种模式,毕竟资源就是money,最大限度的使用才是王道。

三、Flink参数详解:

flink run -m yarn-cluster -c com.xxx.WordCount ./xxxx.jar

  -yn,--container <arg> 表示分配容器的数量,也就是 TaskManager 的数量。

  -d,--detached:设置在后台运行。

  -yjm,--jobManagerMemory<arg>:设置 JobManager 的内存,单位是 MB。

  -ytm,--taskManagerMemory<arg>:设置每个 TaskManager 的内存,单位是 MB。

  -ynm,--name:给当前 Flink application 在 Yarn 上指定名称。

  -yq,--query:显示 yarn 中可用的资源(内存、cpu 核数)

  -yqu,--queue<arg> :指定 yarn 资源队列

  -ys,--slots<arg> :每个 TaskManager 使用的 Slot 数量。

  -yz,--zookeeperNamespace<arg>:针对 HA 模式在 Zookeeper 上创建 NameSpace

  -yid,--applicationID<yarnAppId> : 指定 Yarn 集群上的任务 ID,附着到一个后台独立运行的 Yarn Session 中。

感悟:

        健身和读书,是世界上成本最低的升值方式。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值