3.4.1 创建 Yarn 的 RM 和 NM 客户端 ActiveResourceManager.java YarnResourceManagerDriver.java 在YarnResourceManagerDriver 里面创建和启动 yarn 的 resourcemanager 客户端,创建和启动 yarn 的 nodemanager 客户端 3.4.2 启动 SlotManager 如下为类之间的方法调用,最后在 checkTaskManagerTimeoutsAndRedundancy 方法中 ...
JobManager是Flink系统master节点的逻辑称呼,不同的部署模式有不同的实现类,对于Flink On Yarn下Application模式,其实现类是YarnApplicationClusterEntryPoint。JobManager由三个核心组件构成,分别是ResourceManager、Dispatcher和WebmonitorEndpoint,以下是核心组件的功能简介。 1、WebmonitorEndpoint:Rest服务,内部由Netty实现。客...
(2)、resourceManager.start()方法详解,由ActiveResourceManager的继承关系可知,ResourceManager是RpcEndpoint的子类。RpcEndpoint在调用start()方法时会作用到成员变量rpcServer.start()的方法上,由Flink akka RPC框架可知,rpcServer.start()方法最后会回调到RpcEndpoint的onStart()方法上。 (3)、onStart()方法,由下图可...
public YarnClusterDescriptor createClusterDescriptor(Configuration configuration) { checkNotNull(configuration); final String configurationDirectory = configuration.get(DeploymentOptionsInternal.CONF_DIR); YarnLogConfigUtil.setLogConfigFileInConfig(configuration, configurationDirectory); return getClusterDescriptor(conf...
由源码可知,该过程分为了两个重要步骤:开启 SlotManager 和初始化 ResourceManager,即创建 Yarn 的 ResourceManager 和 NodeManager 客户端 start 为 SlotManager 接口的方法,找到该接口的实现类 FineGrainedSlotManager,该类中的 start 方法根据给定的 leader id 和 ResourceManager 行为来实现开启 SlotManager FineGrained...
而我们的正式运行也同样是yarn模式。flink的yarn模式最常用的又是flink per job模式,也就是一个job应用一个cluster。这样可以不同的job可以相互独立出来。那么现在我们就来分析flink per job的yarn模式客户端源码实现 例如一个flink提交的命令如下: flink run \...
flink任务的deploy形式有很多种选择,常见的有standalone,on yarn , Meos , Kubernetes等方式,目前公司内部统一采用flink on yarn的 single job模式(每个flink job 单独在yarn上声明一个flink集群),本文分析的是flink1.5.1版本源码使用legacy 模式提交yarn single job到yarn集群的部分源码。 典型的flink提交single job...
Flink在Yarn上有两种模式,一种是cluster模式,即像Yarn申请一定量的资源,有点类似于Standalone模式,当然我觉得缺点应该很明显(这里我也不是很肯定,因为我使用的不是这种模式),就是资源的浪费,以及扩容的时候需要重启,影响业务。另一种是Single Job模式,即将一个单独的Job提交到Yarn集群,由Yarn来根据配置分配Container...
Flink在Yarn上有两种模式,一种是cluster模式,即像Yarn申请一定量的资源,有点类似于Standalone模式,当然我觉得缺点应该很明显(这里我也不是很肯定,因为我使用的不是这种模式),就是资源的浪费,以及扩容的时候需要重启,影响业务。另一种是Single Job模式,即将一个单独的Job提交到Yarn集群,由Yarn来根据配置分配Container...
在startNewWorker方法中,封装了向Yarn申请资源的Resource之后,并在requestYarnContainer方法中,通过异步的Yarn的AMRMClientAsync来申请容器。 YarnResourceManager.startNewWorker 当Yarn的容器分配好了之后,会调用YarnResourceManager实现的回调方法onContainerAllocated。在这儿,会将超发的container release调,而所需的container则...