这是大数据小白系列,YARN的第一篇,准确的说是介绍YARN的“前身”,即MapReduce第一版(下称MRv1)中的资源管理系统。

 

之前准备忽略这部分的内容,毕竟MRv1已经过时了,但为方便后续介绍YARN,这里还是(并不深入地)讲一讲。

 

Q:

为什么需要一个资源管理系统?

A:

在一个具有成百上千节点的集群上(这很常见),资源管理十分重要,一个好的资源管理系统可以充分发挥各节点的能力,避免一些节点忙碌,而另一些节点处饥饿状态,从而有助于整个集群的平稳高效运行,提高集群的生产力。

很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:957205962,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系
 

JT & TT在Hadoop系统中的位置

大数据小白系列——YARN(1)

总体看来Hadoop分成两块:HDFS(浅绿色部分)、MR(前紫色部分),各自是一个Master/Slave结构。其中NameNode/DataNode是属于HDFS部分,而JobTracker/TaskTracker(下称JT/TT)则属于MRv1部分,各自独立,后者出问题并不会影响用户读写HDFS。

 

在物理层面上,JT可以与NameNode在同一节点上,但一般集群稍大时,二者需要部署在不同的节点上,以避免争夺资源。而TT是需要运行在所有DataNode节点上的。

 

JT & TT的主要作用

一句话:寻找合适的节点,把MR任务提交到这些节点,并处理任务执行过程中出现的各种问题。

大数据小白系列——YARN(1)

具体来说,MRv1中任务的提交是这样的流程。

  1. 客户端将MR任务提交给JT。

  2. JT通过NameNode获得任务中所需数据所在的节点。

  3. JT在数据所在节点或附近节点中找到有足够资源(内存、CPU)的节点。

  4. JT任务提交给选中的节点。

  5. 这些节点上的TT向JT汇报任务执行情况,JT则向客户端做出反馈。

Tips

JT是如何知道各节点上的资源情况呢?

TT会主动向JT汇报节点信息(包含剩余的slot数和能否接受新任务等信息),所以JT知道该节点上的资源情况。那么TT是如何知道自己所在节点的资源情况,通常是通过配置文件获知。

很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:957205962,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系

JT & TT存在的问题

  1. JT是集群事务的集中处理点,存在单点故障。

  2. JT需要管理集群中个节点的资源情况、同时需要监控任务的运行情况,如果集群具有数千节点,并且同时运行成百上千的任务,任务繁重,容易成为整个系统的性能瓶颈。

  3. 对于各节点的资源划分过于死板。

 

好了,本期先讲到这里,下一期我们介绍YARN。Cheers!

相关文章: