1.Hadoop YARN产生背景

  源于MapReduce1.0

  运维成本 如果采用“一个框架一个集群”的模式,则可能需要多个管理员管理这些集群,进而增加运维成本,而共享模式通常需要少数管理员即可完成多个框架的统一管理。

  数据共享 随着数据量的暴增,跨集群间的数据移动不仅需花费更长的时间,且硬件成本也会大大增加,而共享集群模式可让多种框架共享数据和硬件资源,将大大减小数据移动带来的成本。

  直接源于MRv1在几个方面的缺陷:

                扩展性受限
                单点故障
                难以支持MR之外的计算

  多计算框架各自为战,数据共享困难

                MR:离线计算框架

                  Storm:实时计算框架

Spark:内存计算框架

2.Hadoop YARN基本构成

ResourceManager

整个集群只有一个,负责集群资源的统一管理和调度
详细功能
处理客户端请求
启动/监控ApplicationMaster
监控NodeManager
资源分配与调度

NodeManager

整个集群有多个,负责单节点资源管理和使用
详细功能
单个节点上的资源管理和任务管理
处理来自ResourceManager的命令
处理来自ApplicationMaster的命令

ApplicationMaster

每个应用有一个,负责应用程序的管理
详细功能
数据切分
为应用程序申请资源,并进一步分配给内部任务
任务监控与容错

Container

对任务运行环境的抽象
描述一系列信息
任务运行资源(节点、内存、CPU)
任务启动命令
任务运行环境

3.YARN容错性

ResourceManager
存在单点故障;
正在基于ZooKeeper实现HA。
NodeManager
失败后,RM将失败任务告诉对应的AM;
AM决定如何处理失败的任务。
ApplicationMaster
失败后,由RM负责重启;
AM需处理内部任务的容错问题;
RMAppMaster会保存已经运行完成的Task,重启后无需重新运行

4.YARN调度框架

双层调度框架
RM将资源分配给AM
AM将资源进一步分配给各个Task
基于资源预留的调度策略
资源不够时,会为Task预留,直到资源充足
与“all or nothing”策略不同(Apache Mesos)

5.Hadoop YARN资源调度

YARN资源调度器

多类型资源调度
采用DRF算法(论文:“Dominant Resource Fairness: Fair Allocation of Multiple Resource Types”)
目前支持CPU和内存两种资源
提供多种资源调度器
FIFO
Fair Scheduler
Capacity Scheduler
多租户资源调度器
支持资源按比例分配
支持层级队列划分方式
支持资源抢占

YARN资源隔离方案

支持内存和CPU两种资源隔离
内存是一种“决定生死”的资源
CPU是一种“影响快慢”的资源
内存隔离
基于线程监控的方案
基于Cgroups的方案
CPU隔离
默认不对CPU资源进行隔离
基于Cgroups的方案

YARN支持的调度语义

支持的语义
请求某个特定节点/机架上的特定资源量
将某些节点加入(或移除)黑名单,不再为自己分配这些节点上的资源
请求归还某些资源
不支持的语义
请求任意节点/机架上的特定资源量
请求一组或几组符合某种特质的资源
超细粒度资源
动态调整Container资源

6.Hadoop YARN上的计算框架

离线计算框架:MapReduce
DAG计算框架:Tez
流式计算框架:Storm
内存计算框架:Spark

最新文章

  1. RabbitMQ 高可用集群搭建及电商平台使用经验总结
  2. 数据分析师的福音——VS 2017带来一体化的数据分析开发环境
  3. svn恢复被删除的分支 svn del 分支
  4. MySQL取每组的前N条记录
  5. Java Hour 65 [译] Java 6.0 说明
  6. 剑指offer系列35----序列化二叉树
  7. homework-03
  8. php error file_get_contents()
  9. easy ui datagrid 数据绑定
  10. 阿牛的EOF牛肉串
  11. Java DB访问之 JDBC
  12. Flask入门之SQLAlchemy配置与数据库连接
  13. python之路(7)装饰器
  14. Sql 截取字段中的字符串
  15. C# PictureBox控件畫圖
  16. GPIO实验之c语言
  17. C# 后台获取前台交互判断
  18. sublime格式化js、css、html的通用插件-html js css pretty
  19. Node 在 Centos7 系统下的安装
  20. 从Java进程里dump出类的字节码文件

热门文章

  1. Nim语言:Pascal的语法,Python的缩进
  2. 解决Nginx下WordPress后台404的问题
  3. C++:构造函数的重载
  4. redhat 7.2 配置yum源
  5. jQuery选择器最佳实践--来自jQ官网
  6. 构建linux内核源码树
  7. git push 提示
  8. 函数fsp_alloc_from_free_frag
  9. 监听某个div或其它标签的大小改变来执行相应的处理
  10. centos使用denyhosts的问题,会将自己的IP自动加到hosts.deny的解决办法。