欢迎来到魔据教育大数据学院,专注大数据工程师培养!
当前位置:赛车彩票 > 学习资料 > 讲师博文 > Yarn的运行原理

海南环岛赛彩票控: Yarn的运行原理

时间:2017-11-28 10:16:02作者:[!--zuozhe--]

赛车彩票 www.d6sa.cn 首先我们要知道yarn是什么?能干什么?

先来看一下yarn的诞生:
Yarn的运行原理 
 
 
了解Yarn的架构之前,先说说为什么会出现Yarn。在Hadoop v1版本中,存在最大的问题就是资源管理,大家已经不满足于仅仅能在Hadoop集群上运行MapReduce程序,更希望能够有一套合理的管理机制来控制整个集群的资源调度,于是Yarn平台应运而生
 
还记得之前我讲到的吗? 任何软件行业解决不了的问题都可以通过一个中间层来解决,于是乎yarn就诞生了,这里你可以暂且把yarn当成资源调度,它负责调度hdfs和mapreduce
 
那么我们之前用到过yarn吗?当然用到过了,还记得之前敲的一个命令:
./start-yarn.sh
Yarn的运行原理 
看上图,之前我们在用./start-dfs.sh命令的时候,是启动了hdfs分布式文件系统,那么对应的启动了三个进程,这三个进程我都一一讲过,也讲过原理
那么我们后面的./start-yarn.sh命令是启动yarn资源调度,那么这时候多了两个进程:ResourcManager    NodeManager
那么你可以这么理解:ResourcManager  和  NodeManager 进程就是Yarn
好了,说完上面的,我们再来想想,之前还记得我们做过的三个mapreduce的案例吗
一个是单词计数,一个是去重,一个是相加求和取平均值
这三个例子,都是调用了hdfs上面的test.txt文件,然后又通过了mapreduce阶段最终又输出到了hdfs里面
好了,这里头又用了hdfs,还用到了mapreduce,那么是谁来分配的呢?
对了,这其中的桥梁,或者说中间层就是yarn??!
还记得我们代码当中的main方法下的job吗, 之前我就说它是一个任务,是要给yarn调用,这里确实是这样
我们将我们的代码和类都放到了job中,然后将job提交后,hadoop jar wordcount命令执行jar包的时候,首先yarn会先将job拿走,然后经过一系列复杂的过程后,才会一步一步的调用hdfs 再调用mapreduce 再将结果放回到hdfs,那么这一切的调度和分配都是yarn在执行,还记得之前我们在使用hadoop jar wordcount命令的时候,我又打开了一个窗口jps命令查看进程发现,多了三个进程:
Yarn的运行原理 
这三个进程都是yarn调度的,好了,说了这么多,大家消化一下,屡一下思路,过会我们开始讲原理!
 
 
 
先看下面这个图:
Yarn的运行原理 
 
1.我们通过XShell客户端执行了:hadoop jar wordcount.jar 命令,当程序执行到job代码的时候,会启动一个runjar的进程,这个runjar就是之前新启动的三个进程之一Yarn的运行原理
2.当启动了runjar这个进程后,runjar就会向ResourcManager 发送一个请求,请求申请执行job任务
3.ResourcManager 会返回信息,可以执行,但是需要将job封装的信息(就是map类,reduce类 说白了就是程序代码逻辑)放在hdfs下的/tmp/hadoop-yarn/staging/hyxy/.staging/jobid目录下,但是咱们看不了,每个jobid都单独对应一个job,这个job的id是ResourcManager 返回给runjar的时候带过去的;
Yarn的运行原理 
4.runjar接收到了第三步的信息后,执行到相对应的目录下
5.存储结束后,runjar向ResourcManager 返回信息,存储成功;并且将job任务传送到ResourcManager 中,ResourcManager 将job任务放到消息队列中,等待被执行
6.nodeManager会实时的向ResourcManager 发送心跳(判断nodeManager是否死亡这个是交给ResourcManager (yarn)来做的),并且查看消息队列中有没有待执行的任务,如果有任务需要执行,并且此nodeManager节点资源也空余,那么就会在自己的节点上开辟若干个资源池(continer),资源池的意思是将自己的资源,内存,网络,cpu,io等等切分一部分出来做成一个空间,这个空间专门是用来执行job任务的,(这里强调一下,一般是多个nodeManager节点同时接这个job任务,那么在接任务的时候,ResourcManager就已经看穿一切,并且会将job任务根据资源给多个nodeManager节点,这里扩展一下,一个datanode节点可以开辟出非常多个continer,每一个continer能支持一个map任务 或者 reduce任务计算)
7.那么nodeManager将job领到若干个资源池后,也会获得job的id,此时,会去hdfs中找对应的jobid目录,将对应的job所封装的所有信息拿到资源池里面,那么好了,到目前为止我们都是在说分配资源,请问,有没有启动mapreduce框架,答案肯定是没有!
8.当最后一个nodeManager将jobid的信息复制到本地的时候就会给ResourcManager反馈资源池的信息
9.这个时候,就要用到MapReduce了,所以,ResourcManager会随机在一个节点上开辟MRAPPmaster进程; 还记得我们之前单词计数,jps多出来的三个进程吗?其中的MRAPPmasterYarn的运行原理进程就是管理mapreduce的
10.MAPppmaster会根据每个资源池的需求启动相对应的map 或者 reduce   那么map就叫做map task ,reduce叫做reduce task那么map和 reduce所对应的进程就是yarn childYarn的运行原理,这里强调一下,每一个资源池只能执行一个map或者reduce; map可以有多个,reduce也可以有多个
11.那么在MRAPppmaster启动开始启动map线程的时候,MAPppmaster会一直实时的和ResourceManager交互,原因是如果某个节点的map运行结束了,那么那个节点的资源池就闲置了,所以要一直交互,发现有哪个资源池闲置了,就会通知ResouceManager,而RscouceManager就会将对应的资源池回收掉!
 
好了,以上就是yarn的运行原理,到目前为止hadoop最重要的三个运行原理 hdfs  和 yarn 都讲完了,接下来给大家一点时间消化一下。

更多大数据相关资讯敬请关注魔据教育,为您分享最及时的大数据资讯。
学习大数据敬请关注魔据教育微信二维码。
魔据教育微信二维码

【版权与免责声明】如发现内容存在版权问题,烦请提供相关信息发邮件至[email protected],我们将及时沟通与处理。本站内容除非来源注明魔据教育,否则均为网友转载,涉及言论、版权与本站无关。

全国咨询热线:18501996998,值班手机:18501996998(7*24小时)

在线咨询:张老师QQ 320169340

企业合作服务专线:010-82340234-821, 院校合作洽谈专线:010-82340234

Copyright 2001-2019 魔据教育 - 北京华育兴业科技有限公司 版权所有,京ICP备17018991号-2

免费在线咨询赛车彩票

免费索取技术资料立即索取

大数据技术交流QQ:226594285

电话咨询010-82340234

  • 把过去私有制基础上的“阶级分析”生搬硬套到现代公有制和私有制并存的无阶级社会,是张冠李戴、睁着眼睛说瞎话。 2019-03-19
  • 致敬!他们是不为人知的城市猎鹰 2019-03-08
  • 尧都农商银行全力推进服务“三农”工作 2019-03-08
  • 股权质押“利剑”高悬 上市公司急寻脱困之道 2019-02-14
  • 墨西哥地震与球队进球民众跳跃啥关系?专家:无关 2019-02-14
  • 王东峰主持召开河北雄安新区规划建设工作领导小组会议 2018-12-05
  • 买买买!吃吃吃!端午消费火爆,总额超70亿元 2018-12-05
  • 热巴窦骁携手演绎经典神话 2018-09-16
  • 人民日报人民论坛:表达当守正,修辞立其诚 2018-09-16
  • 韩中国文化院相关新闻 2018-09-11
  • 多彩课堂熔铸红色魂——甘祖昌干部学院教学素描 2018-09-11
  • 小朱婷15分横扫韩国晋级四强 教练誓灭泰国一雪前耻 2018-08-22
  • 死人当被告被判偿还5万债务?原判决被中止执行 2018-08-08
  • 建好欧美同学会 助力伟大中国梦 2018-07-18
  • 759| 193| 475| 191| 825| 598| 154| 387| 938| 614|