Flink是如何与YARN进行交互的
Posted 过往记忆大数据
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink是如何与YARN进行交互的相关的知识,希望对你有一定的参考价值。
在前面(的文章中我们简单地介绍了如何在YARN上提交和运行作业,本文将简要地介绍是如何与YARN进行交互的。
YRAN客户端需要访问Hadoop的相关配置文件,从而可以连接YARN资源管理器和HDFS。它使用下面的规则来决定Hadoop配置:
1、判断YARN_CONF_DIR,HADOOP_CONF_DIR或HADOOP_CONF_PATH等环境变量是否设置了(按照这些变量的顺序判断)。如果它们中有一个被设置了,那么就会读取其中的配置。
2、如果上面的规则失败了(如果正确安装了 YARN 的话,这不应该会发生),那么客户端将会使用HADOOP_HOME环境变量。如果这个环境变量设置了,客户端将会尝试访问$HADOOP_HOME/etc/hadoop(Hadoop 2)或者$HADOOP_HOME/conf (Hadoop 1)路径下文件。
当启动一个新的Flink YARN session,客户端首先判断所请求的资源(容器和内存)是否可用。在那之后,它会把包含了Flink以及相关配置的jar包上传到HDFS(步骤1)。
客户端的下一步是请求(步骤 2)一个 YARN 容器来启动ApplicationMaster(步骤 3)。因为客户端已经将配置和jar文件作为资源向容器注册了,所以运行在特定机器上的NodeManager 会负责准备容器(例如,下载一些文件),一旦上面的步骤完成了,ApplicationMaster (AM)将会被启动。
在那之后,AM开始为Flink的TaskManager 分配容器,这会从HDFS下载jar文件和修改过的配置文件。一旦这些步骤完成了,Flink服务就在YARN上启动完成并准备接受任务了。
以上是关于Flink是如何与YARN进行交互的的主要内容,如果未能解决你的问题,请参考以下文章
Flink on YARN时,如何确定TaskManager数
如何通过Java程序提交yarn的MapReduce计算任务