新 Hadoop Yarn 框架原理及运作机制

重构根本的思想是将 JobTracker 两个基本的功能分离成单独的组件,这两个功能是资源管理和任务调度 / 监控。新的资源管理器全局管理全部应用程序计算资源的分配,每个应用的 ApplicationMaster 负责对应的调度和协调。

一个应用程序无非是一个单独的传统的 MapReduce 任务或者是一个 DAG( 有向无环图 ) 任务。

ResourceManager 和每一台机器的节点管理server能够管理用户在那台机器上的进程并能对计算进行组织。

新的 Hadoop MapReduce 框架(Yarn)架构

上图中 ResourceManager 支持分层级的应用队列。这些队列享有集群一定比例的资源。

从某种意义上讲它就是一个纯粹的调度器,它在执行过程中不正确应用进行监控和状态跟踪。相同,它也不能重新启动因应用失败或者硬件错误而执行失败的任务。

ResourceManager 是基于应用程序对资源的需求进行调度的 ; 每个应用程序须要不同类型的资源因此就须要不同的容器。资源包含:内存,CPU,磁盘,网络等等。

能够看出,这同现 Mapreduce 固定类型的资源使用模型有显著差别,它给集群的使用带来负面的影响。资源管理器提供一个调度策略的插件。它负责将集群资源分配给多个队列和应用程序。调度插件能够基于现有的能力调度和公平调度模型。

上图中 NodeManager 是每一台机器框架的代理。是执行应用程序的容器,监控应用程序的资源使用情况 (CPU,内存,硬盘,网络 ) 而且向调度器汇报。

每个应用的 ApplicationMaster 的职责有:向调度器索要适当的资源容器,执行任务。跟踪应用程序的状态和监控它们的进程,处理任务的失败原因。

新旧 Hadoop MapReduce 框架比对

首先client不变,其调用 API 及接口大部分保持兼容。这也是为了对开发使用者透明化,使其不必对原有代码做大的改变。可是原框架中核心的 JobTracker 和 TaskTracker 不见了。取而代之的是 ResourceManager, ApplicationMaster 与 NodeManager 三个部分。

详解这三个部分:

首先 ResourceManager 是一个中心的服务,它做的事情是调度、启动每个 Job 所属的 ApplicationMaster、另外监控 ApplicationMaster 的存在情况。细心的读者会发现:Job 里面所在的 task 的监控、重新启动等等内容不见了。这就是 AppMst 存在的原因。ResourceManager 负责作业与资源的调度。

接收 JobSubmitter 提交的作业,依照作业的上下文 (Context) 信息。以及从 NodeManager 收集来的状态信息,启动调度过程,分配一个 Container 作为 App Mstr

NodeManager 功能比較专一。就是负责 Container 状态的维护,并向 RM 保持心跳。

ApplicationMaster 负责一个 Job 生命周期内的全部工作,相似老的框架中JobTracker。但注意每个 Job(不是每一种)都有一个 ApplicationMaster。它能够执行在 ResourceManager 以外的机器上。

Yarn 框架相对于老的 MapReduce 框架什么优势呢?

1. 这个设计大大减小了 JobTracker(也就是如今的 ResourceManager)的资源消耗,而且让监測每个 Job 子任务 (tasks) 状态的程序分布式化了,更安全、更优美。

2. 在新的 Yarn 中。ApplicationMaster 是一个可变更的部分,用户能够对不同的编程模型写自己的 AppMst,让很多其它类型的编程模型能够跑在 Hadoop 集群中。能够參考 hadoop Yarn 官方配置模板中的 mapred-site.xml 配置。

3. 对于资源的表示以内存为单位 ( 在眼下版本号的 Yarn 中。没有考虑 cpu 的占用 ),比之前以剩余 slot 数目更合理。

4. 老的框架中,JobTracker 一个非常大的负担就是监控 job 下的 tasks 的执行状况,如今,这个部分就扔给 ApplicationMaster 做了,而 ResourceManager 中有一个模块叫做 ApplicationsMasters( 注意不是 ApplicationMaster),它是监測 ApplicationMaster 的执行状况,假设出问题,会将其在其它机器上重新启动。

5. Container 是 Yarn 为了将来作资源隔离而提出的一个框架。这一点应该借鉴了 Mesos 的工作,眼下是一个框架,只提供 java 虚拟机内存的隔离 ,hadoop 团队的设计思路应该兴许能支持很多其它的资源调度和控制 , 既然资源表示成内存量,那就没有了之前的 map slot/reduce slot 分开造成集群资源闲置的尴尬情况。

新旧 Hadoop 脚本 / 变量 / 位置变化表

新旧 Hadoop 框架配置项变化表

亲。下一博客。就会介绍yarn框架的搭建,耐心等待。

hadoop备战:yarn框架的简单介绍(mapreduce2)的更多相关文章

  1. hadoop备战:yarn框架的搭建(mapreduce2)

    昨天没有写好了没有更新,今天一起更新,yarn框架也是刚搭建好的. 我这里把hadoop放在了我的个人用户hadoop下了,你也能够尝试把它放在/usr/local,考虑的问题就相对多点. 主要的软硬 ...

  2. Hadoop MapReduceV2(Yarn) 框架简介[转]

    对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储及处理框架,对于 Hadoop 框架的介绍在此不再累述,读者可参考 Hadoop 官方简介.使用和学习过老 H ...

  3. Hadoop MapReduceV2(Yarn) 框架简介

    http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/ 对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详 ...

  4. client高性能组件化框架React简单介绍、特点、环境搭建及经常使用语法

    [本文源址:http://blog.csdn.net/q1056843325/article/details/54729657 转载请加入该地址] 明天就是除夕了 预祝大家新春快乐 [ ]~( ̄▽ ̄) ...

  5. iOS开发——多线程篇——快速生成沙盒目录的路径,多图片下载的原理、SDWebImage框架的简单介绍

    一.快速生成沙盒目录的路径 沙盒目录的各个文件夹功能 - Documents - 需要保存由"应用程序本身"产生的文件或者数据,例如:游戏进度.涂鸦软件的绘图 - 目录中的文件会被 ...

  6. java框架复习 简单介绍 (转载)

    一.SpringMVC http://blog.csdn.net/evankaka/article/details/45501811 Spring Web MVC是一种基于Java的实现了Web MV ...

  7. dubbo框架的简单介绍

    以下的官网的介绍. dubbo是SOA.小例子是简单的远程调用(生产者消费者的模式出现).http://blog.csdn.net/huangyekan/article/details/4217267 ...

  8. ReactiveObjC框架的简单介绍

    最近在一直在学习RAC框架的Object-C版本ReactiveObjC(Swift版本为ReactiveSwift),这篇文章简单展示一下学习的成果!!!如果有什么地方理解错误,欢迎大家指正!!!互 ...

  9. 权限控制框架Shiro简单介绍及配置实例

    Shiro是什么 http://shiro.apache.org/ Apache Shiro是一个非常易用的Java安全框架,它能提供验证.授权.加密和Session控制.Shiro非常轻量级,而且A ...

随机推荐

  1. 音频——H5 audio

    分享站又有新功能了:将文件站上的语音文件正确播放出来.效果图: 暂停: 播放: 实现的效果:类似于音乐播放器一般,但是较之更简单一些,可以正常播放语音,有拖动.快进后退效果便可. 思路: 首先想到的便 ...

  2. 剑指offer面试题5:逆序打印单链表(Java)

    Java创建单链表(头插法.尾插法),并逆序打印单链表: package day_0324; import java.util.Scanner; import java.util.Stack; cla ...

  3. 常见微信小程序开发工具

    图标: 1.iconfont图标库:http://www.iconfont.cn/home/index?spm=a313x.7781069.1998910419.2

  4. linux下的shell操作mysql

    (1)MySQL的启动 重启了一次服务器后,使用> mysql -u root -p登陆是出现下面的错误: ERROR 2002 (HY000): Can't connect to local ...

  5. TNS-12532: TNS:invalid argument,Oracle的报错信息太让人无语

    TNS-12532: TNS:invalid argument,Oracle的报错信息太让人无语 现象: Tnsping报错: [oracle@unicomGZ01 admin]$ ../../bin ...

  6. Word 2010 制作文档结构之章节自动编号

    参考:https://jingyan.baidu.com/article/37bce2be129fcc1002f3a2f9.html 1.打开需要章节编号的论文 2.设置格式 注意,这里相同级别的标题 ...

  7. mysql语句性能分析案例

    写法不一样而功能完全相同的两条 SQL 的在性能方面的差异.示例一需求:取出某个 group(假设 id 为 100)下的用户编号(id),用户昵称(nick_name).用户性别( sexualit ...

  8. MySQL大数据量分页性能优化

    mysql大数据量使用limit分页,随着页码的增大,查询效率越低下. 测试实验 1.   直接用limit start, count分页语句, 也是我程序中用的方法: select * from p ...

  9. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验八:PS/2模块② — 键盘与组合键

    实验八:PS/2模块② — 键盘与组合键 实验七之际,我们学习如何读取PS/2键盘发送过来的通码与断码,不过实验内容也是一键按下然后释放,简单按键行为而已.然而,实验八的实验内容却是学习组合键的按键行 ...

  10. jsp页面中引入文件路径问题的解决方案(使用request获取项目路径)【原创】

    在项目页面中,总会引入一些js和css,相对路径or绝对路径的选择就显得至关重要了!下面是项目中遇到的问题和解决方案,做一下记录! 环境: myEclipse创建工程,使用jsp+css+js,项目目 ...