YARN工作机制

在讲解YARN工作机制之前我们先来解决几个问题:什么是yarn,yarn有什么作用,为什么会有yarn

首先我们来看一下什么是yarn,下面这几段英文是来自于HADOOP的官网,它将讲述HADOOP官方对于YARN的定义

  • Hadoop YARN: A framework for job scheduling and cluster resource management.

意思很简单,yarn是一个专门用于作业调度以及管理集群资源的框架。

那么为什么会有YARN呢?

在hadoop1.x时代,负责执行mapreduce的两个角色分别叫做jobtracker和tasktracker。

jobtracker负责监控mapreduce集群中每一个节点的运行状况和job启动以及运行失败后的重启等操作

tasktrack在maperduce集群中的每一个节点上都会存在,它负责监控自己所在节点的上作业的运行状况以及资源的使用情况,并且通过心跳的方式反馈给jobtasker,然后jobtracker会根据这些信息分配job运行在哪些机器上。

但是随着集群规模个工作负荷的增长,这种架构的问题便暴露出来了。

1、JobTracker是Map-reduce的集中处理点,存在单点故障

2、JobTracker完成了太多的任务,造成了过多的资源消耗,当map-reduce job非常多的时候,会造成很大的内存开销,潜在来说,也增加了JobTracker fail的风险,这也是业界普遍总结出老hadoop 的Map-Reduce只能支持4000节点主机的上限。

3、在TaskTracker端,以map/reduce task的数目作为资源的表示过于简单,没有考虑到cpu/内存的占用情况,如果两个大内存消耗的task被调度到了一块,很容易出现OOM

4、在TaskTracker端,把资源强制划分为map task slot和reduce task slot如果当系统中只有map task或者只有reduce task的时候,会造成资源的浪费,也就是前面提到过的集群资源利用的问题。

5、源代码非常难读,因为一个类做了太多的事情,而代码量过多,造成class的任务不清晰,增加bug的修复和版本维护的难读。

所以到了hadoop2.x时代,yarn便诞生了!

 

 

 

 

yarn的核心观点是将对于集群的资源管理和作业调度分割开来。

上图中的ResourceManager和Nodemanger是yarn的资源数据统计框架,ResourceManager掌控当前集群中所有的资源信息,而NodeManager处于每一台节点之上,监控当前节点资源使用情况如(CPU,内存,网络等等),并且没通过心跳连接反馈给ResourceManager。

ResourceManager有分为两大组件:调度器和应用管理器。

调度器负责为作业分配容器等资源,它不负责监控作业的运行状态以及以及重启失败的任务。

应用管理器负责接收提交的作业,并且通知NodeManager开启第一个容器去运行AppMaster除此之外它还负责重启崩溃的AppMaster容器。

上文中AppMaster负责向ResourceManager中的调度器索要用于运行Task的资源,并且追踪这些Task的状态以及监控的它们的执行进度。

三:JOB提交流程

上图!

 

 

 

  1. 客户端向ResourceManager提交作业,并且请求申请一个JobId
  2. 客户端拿到ResourceManager返回的JobId后,会进行配置,然后根据ResourceManager提供路径向集群上传本次作业所需要资源(如;jar包,xml配置等)
  3. 资源递交完毕后,客户端向ResourceManager申请运行一个AppMaster,ResourceManager接收到申请后会将申请转变成成一个JOB,并且将job放入作业调度队列中。
  4. 然后ResourceManger会根据各个NodeManager的CPU、内存使用情况,为队列中的Job分配节点。
  5. 拿到作业后NodeManager会在自己的内部开启一个Container用于运行AppMaster,然后AppMaster会下载之前上传的资源。
  6. AppMaster向ResourceManager索要资源用于运行MapTask或者ReduceTask,ResourceManager收到申请后会根据资源的使用情况通知其他NodeManager让他们在自己的内部开启容器,用于运行Task。

  到此目前我对Yarn所有的认知,希望读到的大佬们多多指教

posted @ 2019-11-15 21:10  悔不该放开那华佗哟  阅读(298)  评论(0编辑  收藏  举报