Flink 知识体系(二)Flink 部署及启动

Flink 支持多种安装模式:

  1. local(本地)——单机模式,一般不使用;
  2. standalone——独立模式,Flink 自带集群,开发测试环境使用;
  3. yarn——计算资源统一由 Hadoop YARN 管理,生产环境使用。 Flink 集群的安装不属于本文档的范畴,如安装 Flink,可自行搜索资料进行安 装。
    本节重点在 Flink 的 Yarn 部署模式。
    在一个企业中,为了最大化的利用集群资源,一般都会在一个集群中同时运行多 种类型的 Workload,可以使用 YARN 来管理所有计算资源。

Flink 在 Yarn 上的部署架构

在这里插入图片描述
从图中可以看出,Yarn 的客户端需要获取 hadoop 的配置信息,连接 Yarn 的 ResourceManager。所以要设置 YARN_CONF_DIR 或者 HADOOP_CONF_DIR 或者 HADOOP_CONF_PATH,只要设置了其中一个环境变量,就会被读取。如果读取上述 的变量失败了,那么将会选择 hadoop_home 的环境变量,会尝试加载 $HADOOP_HOME/etc/hadoop 的配置文件。

  1. 当启动一个 Flink Yarn 会话时,客户端首先会检查本次请求的资源(存 储、计算)是否足够。资源足够将会上传包含 HDFS 及 Flink 的配置信 息和 Flink 的 jar 包到 HDFS;
  2. 客户端向 RM 发起请求;
  3. RM 向 NM 发请求指令,创建 container,并从 HDFS 中下载 jar 以及配 置文件;
  4. 启动 ApplicationMaster 和 jobmanager,将 jobmanager 的地址信息写 到配置文件中,再发到 hdfs 上;
  5. 同时,AM 向 RM 发送心跳注册自己,申请资源(cpu、内存);
  6. 创建 TaskManager 容器,从 HDFS 中下载 jar 包及配置文件并启动;
  7. 各 task 任务通过 jobmanager 汇报自己的状态和进度,AM 和 jobmanager 在一个容器上,AM 就能掌握各任务的运行状态,从而可以在 任务失败时,重新启动任务;
  8. 任务完成后,AM 向 RM 注销并关闭自己;

2. 启动集群

  1. 修改 hadoop 的配置参数: vim etc/hadoop/yarn-site.xml
    添加:
<property>
			<name>yarn.nodemanager.vmem-check-enabled</name> 
			<value>false</value> 
			</property>

修改 Hadoop 的 yarn-site.xml,添加该配置表示内存超过分配值,是否将任务 杀掉。 默认为 true。 运行 Flink 程序,很容易内存超标,这个时候 yarn 会自动杀 掉 job。
默认为 true。 运行 Flink 程序,很容易内存超标,这个时候 yarn 会自动杀 掉 job

2. 修改全局变量 /etc/profile:

1 添加:export HADOOP_CONF_DIR=/export/servers/hadoop/etc/Hadoop
YARN_CONF_DIR 或者 HADOOP_CONF_DIR 必须将环境变量设置为读取 YARN 和 HDFS 配置
2. 启动 HDFS、zookeeper(如果是外置 zookeeper)、YARN 集群;
3. 使用 yarn-session 的模式提交作业。
4. Yarn Session 模式提交作业有两种方式:yarn-session 和 yarn-cluster

3. 模式一: yarn-session

特 点 :1. 使 用 Fl ink 中 的 yarn- ses sion( yarn 客 户 端 ) , 会 启 动 两 个 必 要 服 务 JobManager 和 Tas kManager s; 2. 客 户 端 通 过 yarn- ses sion 提 交 作 业 ; 3. yarn- ses sion 会 一 直 启 动 , 不 停 地 接 收 客 户 端 提 交 的 任 务 ; 4. 如 果 拥 有 有 大 量 的 小 作 业 , 适 合 使 用 这 种 方 式 。
在这里插入图片描述
在 fl ink 目 录 启 动 yarn- ses sion:
bi n / y a r n - s e s s i o n . s h -n 2 -t m 80 0 -j m 80 0 -s 1 -d
-n 表 示 申 请 2 个 容 器
-s 表 示 每 个 容 器 启 动 多 少 个 slot 离 模 式 , 表 示 以 后 台 程
-tm 表 示 每 个 Tas kManager 申 请 800M 内 存
-d 分 序 方 式 运 行
使 用 fl ink 提 交 任 务 :
bi n / f l i n k ru n ex a m p l e s / b a t c h / W o r d C o u n t . j a r
如 果 程 序 运 行 完 了 , 可 以 使 用 yarn appl i cation -k i l l
appl ication_id 杀 掉 任 务 :
ya r n ap p l i c a t i o n -k i l l ap p l i c a t i o n _ 1 5 5 4 3 7 7 0 9 7 8 8 9 _ 0 0 0 2
bin/ yarn- sess ion.sh -n 2 -tm 800 -s 1 -d 意 思 是 :
同 时 向 Yarn 申 请 3 个 container( 即 便 只 申 请 了 两 个 , 因 为 Appl icationMas ter 和 Job Manager 有 一 个 额 外 的 容 器 。 一 旦 将 Fl ink 部 署 到 YARN 群 集 中 ,它 就 会 显 示 Job Manager 的 连 接 详 细 信 息 ) , 其 中 2 个 Container 启 动 Tas kManager ( -n 2) , 每 个 Tas kManager 拥 有 两 个 Tas k Slot( -s 1) , 并 且 向 每 个 Tas kManager 的 Container 申 请 800M 的 内 存 , 以 及 一 个 Appl icationMas ter( Job Manager) 。

4. 模 式 二 : yarn-cluster

特点:

  1. 直接提交任务给 YARN;
  2. 大作业,适合使用这种方式;
  3. 会自动关闭 session。
    在这里插入图片描述
    使用 flink 直接提交任务:
    bin/flink run -m yarn-cluster -yn 2 -yjm 800 -ytm 800 /export/servers/flink-1.6.0/examples/batch/WordCount.jar
    -yn 表示 TaskManager 的个数
    注意:
    1. 在创建集群的时候,集群的配置参数就写好了,但是往往因为业务需要, 要更改一些配置参数,这个时候可以不必因为一个实例的提交而修改 conf/flink-conf.yaml;
      可以通过:-D Dynamic properties 来覆盖原有的配置信息:比如:
      -Dfs.overwrite-files=true -Dtaskmanager.network.numberOfBuffers=16368
    2. 如果使用的是flink on yarn 方式,想切换回 standalone 模式的话,需要删除:/tmp/.yarn-properties-root,因为默认查找当前 yarn 集群中已有的yarn-session信息中的 jobmanager。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值