yarn
文章平均质量分 87
liushahe2012
这个作者很懒,什么都没留下…
展开
-
Hadoop源码解析之YARN服务端作业提交流程
RM接收到客户端作业提交请求时会通过RPC server做回应,其实客户端就是通过ApplicationClientProtocol的RPC客户端提交作业的,客户端的提交流程参见Hadoop源码解析之YARN客户端作业提交流程,在提交阶段的代码中,客户端在获取新的JobId时,会调用到服务端getNewApplication来获得一个GetNewApplicationResponse,该返回类中包原创 2017-02-17 00:17:23 · 1012 阅读 · 0 评论 -
hadoop中使用java.util.ServiceLoader
在前一篇文章Hadoop源码解析之YARN客户端作业提交流程中,介绍了创建客户端代理阶段用到java.util.ServiceLoader加载YarnClientProtocolProvider和LocalClientProtocolProvider。以前从来没有使用过这个类,进去大概看了一下具体的实现。主要是从META-INF/services这个目录下的配置文件加载给定接口或者基类的实现,原创 2017-01-24 22:46:39 · 665 阅读 · 0 评论 -
Hadoop源码解析之申请与分配Container
本文从源码方面介绍应用程序的AM在NM上成功启动并向RM注册后,向RM请求资源(Container)到获取资源的整个过程,以及RM内部涉及的主要工作流程。整个过程可看做以下两个阶段的迭代循环:阶段1:AM汇报资源需求并领取已经分配到的资源。阶段2:NM向RM汇报各个Container的运行状态,如果RM发现它上面有空闲的资源,则进行一次资源分配,并将分配的资源保存到对应的数据结构中原创 2017-04-01 23:57:36 · 2406 阅读 · 3 评论 -
Hadoop源码分析之事件异步分发器AsyncDispatcher
AsyncDispatcher是Yarn中事件异步分发器,它是ResourceManager中的一个基于阻塞队列的分发或者调度事件的组件,其在一个特定的单线程中分派事件,交给AsyncDispatcher中之前注册的针对该事件所属事件类型的事件处理器EventHandler来处理。每个事件类型类可能会有多个处理渠道,即多个事件处理器,可以使用一个线程池调度事件。在Yarn的主节点ResourceM原创 2017-02-26 21:16:55 · 686 阅读 · 0 评论 -
Hadoop源码解析之ApplicationMaster启动流程
本文从源码调用方面介绍从应用程序提交到启动ApplicationMaster的整个过程,期间涉及ClientRMService、RMAppManager、RMAppImpl、RMAppAttemptImpl、RMNode、ResourceScheduler等几个主要组件。当客户端调用RPC函数ApplicationClientProtocol#submitApplication之后原创 2017-02-20 23:33:26 · 5110 阅读 · 3 评论 -
Hadoop源码解析之java动态代理机制
在前一篇文章Hadoop源码解析之YARN客户端作业提交流程中,介绍了创建客户端代理阶段用到Java中的动态代理: protected void serviceStart() throws Exception { try { rmClient = ClientRMProxy.createRMProxy(getConfig(), ApplicationCl原创 2017-01-26 15:21:00 · 1341 阅读 · 0 评论 -
Hadoop源码解析之YARN客户端作业提交流程
主要的流程集中在JobSubmitter.submitJobInternal中,包括检测输出目录合法性,设置作业提交信息(主机和用户),获得JobID,向HDFS中拷贝作业所需文件(Job.jar Job.xml split文件等),最后执行作业提交。原创 2017-01-22 23:36:48 · 2044 阅读 · 0 评论 -
Hadoop源码解析之修改distributedshell使每个Container运行在不同节点上
1.提出问题修改DistributedShell程序,使得每个Container运行在不同节点上(目前是随机的,可能运行在任意节点上)。2.分析过程 在YARN的处理流程中:1. AM通过RPC协议ApplicationMasterProtocol向RM申请Container。2. AM通过RPC协议ContainerManagementProtocol要求原创 2017-01-21 02:18:24 · 571 阅读 · 0 评论 -
Hadoop源码解析之distributedshell
Hadoop源码解析之distributedshell1. 概述本文介绍YARN自带的一个非常简单的应用程序编程实例—distributedshell,他可以看做YARN编程中的“helloworld”,它的主要功能是并行执行用户提供的shell命令或者shell脚本。本文主要介绍distributedshell的实现方法。版本为hadoop-2.5.2Distributed原创 2017-01-18 23:33:17 · 1452 阅读 · 0 评论 -
Hadoop之YARN的主要通信协议
hadoop基础教程:YARN通信协议,RPC协议是连接各个组件的“大动脉”,了解不同组件之间的RPC协议有助于我们更深入地学习YARN框架。在YARN中,任何两个需相互通信的组件之间仅有一个RPC协议,而对于任何一个RPC协议,通信双方有一端是Client,另一端为Server,且Client总是主动连接Server的,因此,YARN实际上采用的是拉式(pull-based)通信模型。Job原创 2017-01-20 22:47:15 · 969 阅读 · 0 评论 -
Hadoop YARN中内存和CPU两种资源的调度和隔离
Hadoop YARN同时支持内存和CPU两种资源的调度(默认只支持内存,如果想进一步调度CPU,需要自己进行一些配置),本文将介绍YARN是如何对这些资源进行调度和隔离的。在YARN中,资源管理由ResourceManager和NodeManager共同完成,其中,ResourceManager中的调度器负责资源的分配,而NodeManager则负责资源的供给和隔离。ResourceMan原创 2017-01-19 23:51:24 · 723 阅读 · 0 评论 -
Hadoop源码解析之YARN的服务库与事件库
Hadoop源码解析之YARN的服务库与事件库 参考:http://www.cnblogs.com/smartloli/p/4669968.html1. YARN服务库对于生命周期较长的对象,YARN使用基于服务的对象模型进行管理,主要特点如下:1. 用于被服务化的对象包含4个状态,他们分别是:被创建、已初始化、已启动和已停止。2. 任何服务状态变化都可以触转载 2017-01-13 22:32:45 · 896 阅读 · 0 评论 -
Hadoop源码解析之如何获取JobId
前一篇文章讲到客户端作业的提交流程,其中有调用到JobSubmitter类的submitJobInternal函数,里面有获取JobId的地方。部分源码如下:JobStatus submitJobInternal(Job job, Cluster cluster) throws ClassNotFoundException, InterruptedException, IOExcep原创 2017-01-23 23:24:46 · 1810 阅读 · 0 评论 -
Hadoop源码解析之动态调整MapTask的内存资源大小
1.前言我们都知道,在Hadoop中,一个Job的执行需要转化成1个个的Task去执行,在Task中,有会有2个类型,一个为Map Task,另一个就是Reduce Task.当然,这不是最底层的级别,在Task内部,还可以再分为TaskAttempt,叫做任务尝试,任务尝试姑且不在本篇文章的论述范围内.OK,针对每个Task,他当然会有他的资源使用量,广义的来讲,资源分为2个概念,1转载 2017-04-23 23:10:39 · 869 阅读 · 0 评论