这是大数据小白系列,YARN的第一篇,准确的说是介绍YARN的“前身”,即MapReduce第一版(下称MRv1)中的资源管理系统。
之前准备忽略这部分的内容,毕竟MRv1已经过时了,但为方便后续介绍YARN,这里还是(并不深入地)讲一讲。
Q:
为什么需要一个资源管理系统?
A:
在一个具有成百上千节点的集群上(这很常见),资源管理十分重要,一个好的资源管理系统可以充分发挥各节点的能力,避免一些节点忙碌,而另一些节点处饥饿状态,从而有助于整个集群的平稳高效运行,提高集群的生产力。
很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:957205962,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系
JT & TT在Hadoop系统中的位置
总体看来Hadoop分成两块:HDFS(浅绿色部分)、MR(前紫色部分),各自是一个Master/Slave结构。其中NameNode/DataNode是属于HDFS部分,而JobTracker/TaskTracker(下称JT/TT)则属于MRv1部分,各自独立,后者出问题并不会影响用户读写HDFS。
在物理层面上,JT可以与NameNode在同一节点上,但一般集群稍大时,二者需要部署在不同的节点上,以避免争夺资源。而TT是需要运行在所有DataNode节点上的。
JT & TT的主要作用
一句话:寻找合适的节点,把MR任务提交到这些节点,并处理任务执行过程中出现的各种问题。
具体来说,MRv1中任务的提交是这样的流程。
-
客户端将MR任务提交给JT。
-
JT通过NameNode获得任务中所需数据所在的节点。
-
JT在数据所在节点或附近节点中找到有足够资源(内存、CPU)的节点。
-
JT任务提交给选中的节点。
-
这些节点上的TT向JT汇报任务执行情况,JT则向客户端做出反馈。
Tips
JT是如何知道各节点上的资源情况呢?
TT会主动向JT汇报节点信息(包含剩余的slot数和能否接受新任务等信息),所以JT知道该节点上的资源情况。那么TT是如何知道自己所在节点的资源情况,通常是通过配置文件获知。
很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:957205962,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系
JT & TT存在的问题
-
JT是集群事务的集中处理点,存在单点故障。
-
JT需要管理集群中个节点的资源情况、同时需要监控任务的运行情况,如果集群具有数千节点,并且同时运行成百上千的任务,任务繁重,容易成为整个系统的性能瓶颈。
-
对于各节点的资源划分过于死板。
好了,本期先讲到这里,下一期我们介绍YARN。Cheers!