Hadoop YARN架构解读

原Mapreduce架构

原理
架构图如下:

图 1.Hadoop 原 MapReduce 架构

原 MapReduce 程序的流程:
首先用户程序 (JobClient) 提交了一个 job,job 的信息会发送到 Job Tracker 中,Job Tracker需要与集群中的机器定时通信 (heartbeat), 需要管理哪些程序应该跑在哪些机器上,需要管理所有 job 失败、重启等操作。
TaskTracker 是 Map-reduce 集群中每台机器都有的一个部分,它的职责有两个:一是监视自己所在机器的资源情况,二是监视当前机器的 tasks 运行状况。TaskTracker 需要把这些信息通过 heartbeat 发送给 JobTracker,JobTracker 会搜集这些信息以给新提交的 job 分配运行在哪些机器上。上图虚线箭头就是表示消息的发送 - 接收的过程。

存在的问题

  1. JobTracker单点故障。
  2. JobTracker的管理负荷过大,业界普遍认可的并行节点上限是4000。
  3. TaskTracker 端,以 map/reduce task 的数目作为资源的表示过于简单,没有考虑到 cpu/ 内存的占用情况,如果两个大内存消耗的 task 被调度到了一块,很容易出现资源枯竭。

    其他问题摘抄如下:
    在 TaskTracker 端,把资源强制划分为 map task slot 和 reduce task slot, 如果当系统中只有 map task 或者只有 reduce task 的时候,会造成资源的浪费,也就是前面提过的集群资源利用的问题。
    源代码层面分析的时候,会发现代码非常的难读,常常因为一个 class 做了太多的事情,代码量达 3000 多行,,造成 class 的任务不清晰,增加 bug 修复和版本维护的难度。
    从 操作的角度来看,现在的 Hadoop MapReduce 框架在有任何重要的或者不重要的变化 ( 例如 bug 修复,性能提升和特性化 ) 时,都会强制进行系统级别的升级更新。更糟的是,它不管用户的喜好,强制让分布式集群系统的每一个用户端同时更新。这些更新会让用户为了验证他们之前的应 用程序是不是适用新的 Hadoop 版本而浪费大量时间。

一句话总结:JobTracker干的事儿太多了。

YARN架构

架构图如下:

YARN.jpg

基本思想是将 JobTracker 两个主要的功能分离成单独的组件,这两个功能是资源管理和任务调度 / 监控。
ResourceManager 管理所有应用程序计算资源的分配,每一个应用的 ApplicationMaster 负责相应的调度和协调。一个应用程序无非是一个单独的传统的 MapReduce 任务或者是一个 DAG( 有向无环图 ) 任务。ResourceManager 和每一台机器的节点管理服务器能够管理用户在那台机器上的进程并能对计算进行组织。NodeManager 是每一台机器框架的代理,是执行应用程序的容器,监控应用程序的资源使用情况 (CPU,内存,硬盘,网络 ) 并且向调度器汇报。

架构变化的总结
原来的JobTracker和TaskTracker是从物理节点的角度来设置,但每个 节点内部还包括资源监控、任务调度的功能。改版之后,从逻辑上进行功能模块设计,ResourceManager专门负责管理和分配资 源,NodeManager是RM在各节点上的代理,每个应用有一个ApplicationMaster,但不放在RM节点上,而是分布式存放,用来管理 应用在各节点上的运行、向RM申请资源。这样,原来JobTracker被分解为两个功能模块,并且不在同一个节点上运行,自然降低了RM节点(原 JobTracker节点)的管理负荷。

摘自:http://www.jianshu.com/p/3b9179534127

转载于:https://www.cnblogs.com/bonelee/p/7246964.html

yarn架构——本质上是在做解耦 将资源分配和应用程序状态监控两个功能职责分离为RM和AM...相关推荐

  1. Deep Belief Network简介——本质上是在做逐层无监督学习,每次学习一层网络结构再逐步加深网络...

    from:http://www.cnblogs.com/kemaswill/p/3266026.html 1. 多层神经网络存在的问题 常用的神经网络模型, 一般只包含输入层, 输出层和一个隐藏层: ...

  2. 架构本质解析-微博架构

    架构,刚开始的解释是我从知乎上看到的.什么是架构?有人讲,说架构并不是一个很悬乎的东西,实际上就是一个架子,放一些业务和算法,跟我们的生活中的晾衣架很像.更抽象一点,说架构其实是对我们重复性业务的抽象 ...

  3. CVPR专访阿里iDST华先胜:电商搜索与城市大脑,本质上都是视觉系统问题|CVPR 2017...

    雷锋网 AI 科技评论按:在 CVPR 2017 ,雷锋网(公众号:雷锋网) AI 科技评论看到了非常多的工业界人士来到现场.这个计算机视觉领域的学术会议吸引了如此多的企业研究院大牛,他们对工业界与学 ...

  4. 大数据DDos检测——DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然! 和一个句子的分词算法CRF没有区别!...

    DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然!--和一个句子的分词算法CRF没有区别! 注:传统DDos检测直接基于IP数据发送流量来识别 ...

  5. 互联网架构,究竟为啥要做服务化?

    "微服务架构"的话题非常之火,很多朋友都在小窗我,说怎么做服务化?解答"怎么做"之前,先得了解"为什么做". 画外音:做技术千万不能是这种思 ...

  6. 看云上 ClickHouse 如何做计算存储分离

    2020年12月6日-7日,由InfoQ 中国主办的综合性技术盛会QCon全球软件开发大会深圳站召开.QCon 内容源于实践并面向社区,演讲嘉宾依据热点话题,面向资深的技术团队负责人.架构师.工程总监 ...

  7. 【读书笔记】YARN架构设计与实现原理

    Hadoop技术内幕:深入解析YARN架构设计与实现原理 Hadoop技术内幕:深入解析YARN架构设计与实现原理 董西成 ◆ 第2章 YARN设计理念与基本架构 由于MRv2将资源管理功能抽象成了一 ...

  8. Hadoop生态圈(九)YARN架构深入学习

    1. YARN框架概述 1.1 YARN产生和发展简史 1.1.1 Hadoop演进阶段 数据.程序.运算资源(内存.cpu)三者组在一起,完成了数据的计算处理过程.在单机环境下,这些都不是太大问题. ...

  9. Hadoop生态圈(三十三)- YARN架构深入学习

    目录 前言 1. YARN框架概述 1.1 YARN产生和发展简史 1.1.1 Hadoop演进阶段 1.1.1.1 阶段0:Ad Hoc集群 1.1.1.2 阶段1:HOD集群 1.1.1.3 阶段 ...

最新文章

  1. IDEA工具基本设置
  2. JDBC: Java连接MySQL
  3. html css js实现快递单打印_JS与HTML、CSS实现2048小游戏(六)
  4. php string to array,php string转数组的方法
  5. boost::polygon模块实现多边形集数据相关的测试程序
  6. IIS 8.5配置.net网站[花了半个多小时]
  7. ExcelPro《EXCEL图表之道-如…
  8. iphonex计算机隐藏功能,关于iPhone11系列的一些隐藏功能,非常的实用
  9. linux系统安装如何设置raid,在RAID磁盘阵列下如何搭建Linux系统
  10. 此次边路调整系统推荐射手走哪路_王者荣耀:廉颇“史诗级”改动,成吉思汗等射手降温!...
  11. XML与HTML区别
  12. Linux安装mysql 开启bingo日志
  13. 世界通用闹铃(闹钟铃声)铃声 世界通用闹铃(闹钟铃声)手机铃声...
  14. CDA数据分析师认证考试模拟题库
  15. 中级财管电脑操作不会用计算机,很全面!2018年中级无纸化考试财管公式输入方法及计算器操作说明...
  16. 移动端和前端开发的共性
  17. 排序方法基本介绍(1)
  18. Javascript中最常用的55个经典技巧
  19. 步进电机基础(6.2)-步进电机的特性测量方法-动态特性的测量法和步距角度精度的测量
  20. 次世代游戏建模师一个月的工资有多少?

热门文章

  1. 怎样用C语言数码管编写E1显示程序,跪求单片机0~99数码管显示用C语言编写的程序...
  2. 计算机事业单位专技岗考什么区别,事业单位管理和专技岗位有什么区别?哪个有前途?...
  3. webloigc12服务启动不了_一键启动知多少!
  4. dfs找不到网络路径 windows_Windows Server DFS本地共享文件夹访问
  5. k8s mysql volume_Kubernetes(k8s)中文文档 名词解释 Volumes_Kubernetes中文社区
  6. js 获取鼠标在画布的位置_javascript求鼠标在canvas画布里的坐标
  7. 【408预推免复习】计算机组成原理之计算机的发展及应用
  8. python【蓝桥杯vip练习题库】ADV-305输出二进制表示
  9. 解决The server cannot be started because one or more of the ports are invalid.
  10. ai3中文语音补丁_NS 暗黑破坏神3 中文补丁今日上线!刷起来