浅析大数据Hadoop之YARN架构

1. YARN

本质上是资源管理系统。YARN提供了资源管理和资源调度等机制

1.1 原 Hadoop MapReduce 框架

对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储及处理框架,对于 Hadoop 框架的介绍在此不再累述,读者可参考 Hadoop 官方简介。使用和学习过老 Hadoop 框架(0.20.0 及之前版本)的同仁应该很熟悉如下的原 MapReduce 框架图:

1.2 Hadoop 原 MapReduce 架构

 

浅析大数据Hadoop之YARN架构_第1张图片

从上图中可以清楚的看出原 MapReduce 程序的流程及设计思路:

首先用户程序 (JobClient) 提交了一个 job,job 的信息会发送到 Job Tracker 中,Job Tracker 是 Map-reduce 框架的中心,他需要与集群中的机器定时通信 (heartbeat), 需要管理哪些程序应该跑在哪些机器上,需要管理所有 job 失败、重启等操作。

TaskTracker 是 Map-reduce 集群中每台机器都有的一个部分,他做的事情主要是监视自己所在机器的资源情况。

TaskTracker 同时监视当前机器的 tasks 运行状况。TaskTracker 需要把这些信息通过heartbeat 发送给 JobTracker,JobTracker 会搜集这些信息以给新提交的 job 分配运行在哪些机器上。上图虚线箭头就是表示消息的发送 - 接收的过程。(JobTracker 一个很大的负担就是监控 job 下的 tasks 的运行状况

可以看得出原来的 map-reduce 架构是简单明了的,在最初推出的几年,也得到了众多的成功案例,获得业界广泛的支持和肯定,但随着分布式系统集群的规模和其工作负荷的增长,原框架的问题逐渐浮出水面,主要的问题集中如下:

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

JobTracker 完成了太多的任务,造成了过多的资源消耗,当 map-reduce job 非常多的时候,会造成很大的内存开销,潜在来说,也增加了 JobTracker fail 的风

你可能感兴趣的:(python,数据清洗,人工智能,大数据,大数据学习,深度学习,大数据,大数据学习,YARN,hadoop)