0
hadoop123.com

Hadoop YARN
基本架构和发展趋势
董西成
email :dongxicheng@yahoo.com
微信号:hadoop-123 [口号:做微信上最好的hadoop技术传播者]

dongxicheng....
hadoop123.com

主要内容

1

Hadoop YARN产生背景

2

Hadoop YARN基本架构

3

运行在YARN上的计算框架

4

YARN发展趋势

dongxicheng.org
hadoop123.com

主要内容

1

Hadoop YARN产生背景

2

Hadoop YARN基本架构

3

运行在YARN上的计算框架

4

YARN发展趋势

dongxicheng.org
hadoop123.com

Hadoop YARN产生背景
 直接源于MRv1在几个方面的缺陷
 扩展性受限
 单点故障
 难以支持MR之外的计算

 多计算框架各自为战,数据共享困难
 MR:离线计算框架
 Storm:实时计...
hadoop123.com

Hadoop 1.0和2.0

 Hadoop 2.0由HDFS、MapReduce和YARN三个分支构成;
 HDFS:NN Federation、HA;
 MapReduce:运行在YARN上的MR;
...
hadoop123.com

主要内容

1

Hadoop YARN产生背景

2

Hadoop YARN基本架构

3

运行在YARN上的计算框架

4

YARN发展趋势

dongxicheng.org
hadoop123.com

Hadoop YARN基本架构

dongxicheng.org
hadoop123.com

Hadoop YARN各模块组成
 ResourceManager





处理客户端请求
启动/监控ApplicationMaster
监控NodeManager
资源分配与调度

 NodeMan...
hadoop123.com

Hadoop YARN运行流程分析
Task

⑥

Node
Manager
Client

Client

①

Task

②

Application
Master

③
Node
Manager

Con...
hadoop123.com

Hadoop YARN容错
 ResourceManager
 存在单点故障;
 正在基于ZooKeeper实现HA。

 NodeManager
 失败后,RM将失败任务告诉对应的AM;
 AM决定如...
hadoop123.com

Hadoop YARN调度框架
 双层调度框架
 RM将资源分配给AM
 AM将资源进一步分配给各个Task

 基于资源预留的调度策略
 资源不够时,会为Task预留,直到资源充足
 与“all or...
hadoop123.com

Hadoop YARN资源调度器
 多类型资源调度
 采用DRF算法(论文:“Dominant Resource Fairness: Fair
Allocation of Multiple Resource T...
hadoop123.com

Hadoop YARN资源隔离方案
 支持内存和CPU两种资源隔离
 内存是一种“决定生死”的资源
 CPU是一种“影响快慢”的资源

 内存隔离
 基于线程监控的方案
 基于Cgroups的方案

...
hadoop123.com

Hadoop YARN资源调度语义
 支持的语义
 请求某个特定节点/机架上的特定资源量
 将某些节点加入(或移除)黑名单,不再为自己分配这些节点上
的资源
 请求归还某些资源

 不支持的语义


...
hadoop123.com

主要内容

1

Hadoop YARN产生背景

2

Hadoop YARN基本架构

3

运行在YARN上的计算框架

4

YARN发展趋势

dongxicheng.org
hadoop123.com

应用程序的运行模型
input

Map

input

output

Stage
1

input

Stage
1

Reduce

Stage
2
Stage
3

input

Map

Stage
4
...
hadoop123.com

YARN应用程序类型
 长应用程序和短应用程序
 长应用程序
Service、HTTP Server等
 短应用程序
MR job、Spark Job等

dongxicheng.org
hadoop123.com

以YARN为核心的生态系统

dongxicheng.org
hadoop123.com

运行在YARN上的计算框架

离线计算框架:MapReduce
DAG计算框架:Tez

流式计算框架:Storm
内存计算框架:Spark
图计算框架:Giraph、GraphLib
dongxiche...
hadoop123.com

离线计算框架MapReduce
 将计算过程分为两个阶段,Map和Reduce
 Map 阶段并行处理输入数据
 Reduce阶段对Map结果进行汇总
 Shuffle连接Map和Reduce两个阶段
 ...
hadoop123.com

MapReduce On YARN
ResourceManager

Client
Client

Applications
Manager

1

Resource
Scheduler

2
3,8

4
Nod...
hadoop123.com

DAG计算框架Tez
 多个作业之间存在数据依赖关系,并形成一个依赖关系有
向图( Directed Acyclic Graph ),该图的计算称为
“DAG计算”
 Apache Tez:基于YARN的DAG...
hadoop123.com

DAG计算框架Tez

DAG Job

Job1
HDFS

HDFS

Job2
HDFS

Map1

Map1

Map2

Job2

Job1

Using
Tez
Reduce12
Using
Tez...
hadoop123.com

Tez On YARN
ResourceManager

Client
Client

Applications
Manager

1

Resource
Scheduler

2
3,8

4
Node
Mana...
hadoop123.com

Tez优化技术
 ApplicationMaster缓冲池
 作业提交到AMPoolServer服务上
 预启动若干个ApplicationMaster,形成一个
ApplicationMaster缓冲池
...
hadoop123.com

Tez应用场景
 直接编写应用程序
 Tez提供了一套通用编程接口
 适合编写有依赖关系的作业
 优化Pig、Hive等引擎
 下一代Hive:Stinger
 好处1:避免查询语句转换成过多的MapR...
hadoop123.com

流式计算Storm
 流式(Streaming)计算,是指被处理的数据
像流水一样不断流入系统,而系统需要针对每条
数据进行实时处理和计算,并永不停止(直到用
户显式杀死进程);
 传统做法:由消息队列和消息处...
hadoop123.com

Worker

Executor

Blot-A Tasks, topology1

Executor

Spout Tasks, topology 2

Executor

Blot-1 Tasks, topol...
hadoop123.com

流式计算框架Storm
Topology
Blot-A

Stream
Grouping
Blot-C

Stream
Grouping
Task
Task
Spout

Task

Task

Task

Tas...
hadoop123.com

Storm On YARN
YARN-MapReduce
YARN-MapReduce
Client
Client

YARN-Storm
YARN-Storm
Client
Client

YARN-MPI
YA...
hadoop123.com

内存计算框架Spark
 克服MapReduce在迭代式计算和交互式计算方
面的不足;
 引入RDD(Resilient Distributed
Datasets)数据表示模型;
 RDD是一个有容错机制,可...
hadoop123.com

内存计算框架Spark

dongxicheng.org
hadoop123.com

Spark On YARN
YARN-Spark
YARN-Spark
Client
Client

YARN-MapReduce
YARN-MapReduce
Client
Client

YARN-MPI
YA...
hadoop123.com

Spark生态系统

dongxicheng.org
hadoop123.com

其他Framework On YARN
 Hoya:HBase on YARN ;
https://github.com/hortonworks/hoya/

 LLAMA:Impala On YARN
htt...
hadoop123.com

主要内容

1

Hadoop YARN产生背景

2

Hadoop YARN基本架构

3

运行在YARN上的计算框架

4

YARN发展趋势

dongxicheng.org
hadoop123.com

资源管理系统带来的好处
 提高集群资源利用率

 服务自动化部署
bin/hadoop install hbase -version 0.95.0 -slaves 10

InstallerApp
Master...
hadoop123.com

资源管理系统发展趋势
双层调度

集中式调度

Scheduling
logic

Scheduling
logic

共享状态调度
Scheduling
logic

Scheduling
logic

Sche...
hadoop123.com

YARN自身的完善
 调度框架的完善:YARN-896
支持更多的资源类型(网络、磁盘等)
支持更多的调度语义
 长作业的在线升级
Storm在线升级等
Container资源动态调整:YARN-119...
hadoop123.com

以YARN为核心的生态系统
 YARN使得Hadoop生态系统更加强大
吸纳其他开源计算框架,比Storm、Spark等
变为集群管理者
MapReduce

Tez

Storm

Spark

Girap...
hadoop123.com

Hadoop技术内幕

dongxicheng.org
hadoop123.com

引用链接
 Hadoop;
http://hadoop.apache.org/
 Tez
http://tez.incubator.apache.org/
 Storm
http://storm-projec...
hadoop123.com

【联系我】
邮 箱:dongxicheng@yahoo.com
微信号:hadoop-123(每天一篇hadoop文章)
微博ID:西成懂
博 客:dongxicheng.org
书 籍:hadoop123.com
Upcoming SlideShare
Loading in...5
×

Hadoop yarn 基本架构和发展趋势

1,122

Published on

介绍hadoop 2.0中新增的资源管理系统YARN,包括YARN的产生背景、基本架构、运行在YARN上的计算框架和YARN发展趋势等,更详细的内容可阅读hadoop 2.0书籍《Hadoop技术内幕:深入解析YARN架构设计与实现原理》,详情可访问http://hadoop123.com/

Published in: Technology, Business, Lifestyle
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,122
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
50
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Transcript of "Hadoop yarn 基本架构和发展趋势"

  1. 1. hadoop123.com Hadoop YARN 基本架构和发展趋势 董西成 email :dongxicheng@yahoo.com 微信号:hadoop-123 [口号:做微信上最好的hadoop技术传播者] dongxicheng.org
  2. 2. hadoop123.com 主要内容 1 Hadoop YARN产生背景 2 Hadoop YARN基本架构 3 运行在YARN上的计算框架 4 YARN发展趋势 dongxicheng.org
  3. 3. hadoop123.com 主要内容 1 Hadoop YARN产生背景 2 Hadoop YARN基本架构 3 运行在YARN上的计算框架 4 YARN发展趋势 dongxicheng.org
  4. 4. hadoop123.com Hadoop YARN产生背景  直接源于MRv1在几个方面的缺陷  扩展性受限  单点故障  难以支持MR之外的计算  多计算框架各自为战,数据共享困难  MR:离线计算框架  Storm:实时计算框架  Spark:内存计算框架 dongxicheng.org
  5. 5. hadoop123.com Hadoop 1.0和2.0  Hadoop 2.0由HDFS、MapReduce和YARN三个分支构成;  HDFS:NN Federation、HA;  MapReduce:运行在YARN上的MR;  YARN:资源管理系统 dongxicheng.org
  6. 6. hadoop123.com 主要内容 1 Hadoop YARN产生背景 2 Hadoop YARN基本架构 3 运行在YARN上的计算框架 4 YARN发展趋势 dongxicheng.org
  7. 7. hadoop123.com Hadoop YARN基本架构 dongxicheng.org
  8. 8. hadoop123.com Hadoop YARN各模块组成  ResourceManager     处理客户端请求 启动/监控ApplicationMaster 监控NodeManager 资源分配与调度  NodeManager  单个节点上的资源管理  处理来自ResourceManager的命令  处理来自ApplicationMaster的命令  ApplicationMaster  数据切分  为应用程序申请资源,并分配给内部任务  任务监控与容错 dongxicheng.org
  9. 9. hadoop123.com Hadoop YARN运行流程分析 Task ⑥ Node Manager Client Client ① Task ② Application Master ③ Node Manager Container ⑤ ④ Resource Manager Container ⑤ ⑤ Client Node Manager Task ⑥ dongxicheng.org Container
  10. 10. hadoop123.com Hadoop YARN容错  ResourceManager  存在单点故障;  正在基于ZooKeeper实现HA。  NodeManager  失败后,RM将失败任务告诉对应的AM;  AM决定如何处理失败的任务。  ApplicationMaster  失败后,由RM负责重启;  AM需处理内部任务的容错问题;  RMAppMaster会保存已经运行完成的Task,重启后无需重新运 行。 dongxicheng.org
  11. 11. hadoop123.com Hadoop YARN调度框架  双层调度框架  RM将资源分配给AM  AM将资源进一步分配给各个Task  基于资源预留的调度策略  资源不够时,会为Task预留,直到资源充足  与“all or nothing”策略不同(Apache Mesos) Job1 (MR Appcation Master) containers to launch (tasks) free containers JobTracker (job1,job2,job3) free containers resources tasks Job2 (MR Appcation Master) YARN Cluster YARN Cluster (resource pool) (resource pool) containers to launch (tasks) TaskTracker TaskTracker TaskTracker TaskTracker MRv1 containers to launch free Containers (tasks) Job3 (MR Appcation Master) dongxicheng.org MRv2
  12. 12. hadoop123.com Hadoop YARN资源调度器  多类型资源调度  采用DRF算法(论文:“Dominant Resource Fairness: Fair Allocation of Multiple Resource Types”)  目前支持CPU和内存两种资源  提供多种资源调度器  FIFO  Fair Scheduler  Capacity Scheduler  多租户资源调度器  支持资源按比例分配  支持层级队列划分方式  支持资源抢占 dongxicheng.org
  13. 13. hadoop123.com Hadoop YARN资源隔离方案  支持内存和CPU两种资源隔离  内存是一种“决定生死”的资源  CPU是一种“影响快慢”的资源  内存隔离  基于线程监控的方案  基于Cgroups的方案  CPU隔离  默认不对CPU资源进行隔离  基于Cgroups的方案 dongxicheng.org
  14. 14. hadoop123.com Hadoop YARN资源调度语义  支持的语义  请求某个特定节点/机架上的特定资源量  将某些节点加入(或移除)黑名单,不再为自己分配这些节点上 的资源  请求归还某些资源  不支持的语义     请求任意节点/机架上的特定资源量 请求一组或几组符合某种特质的资源 超细粒度资源 动态调整Container资源 dongxicheng.org
  15. 15. hadoop123.com 主要内容 1 Hadoop YARN产生背景 2 Hadoop YARN基本架构 3 运行在YARN上的计算框架 4 YARN发展趋势 dongxicheng.org
  16. 16. hadoop123.com 应用程序的运行模型 input Map input output Stage 1 input Stage 1 Reduce Stage 2 Stage 3 input Map Stage 4 output Stage N output Stage 2 Stage 3 dongxicheng.org output
  17. 17. hadoop123.com YARN应用程序类型  长应用程序和短应用程序  长应用程序 Service、HTTP Server等  短应用程序 MR job、Spark Job等 dongxicheng.org
  18. 18. hadoop123.com 以YARN为核心的生态系统 dongxicheng.org
  19. 19. hadoop123.com 运行在YARN上的计算框架 离线计算框架:MapReduce DAG计算框架:Tez 流式计算框架:Storm 内存计算框架:Spark 图计算框架:Giraph、GraphLib dongxicheng.org
  20. 20. hadoop123.com 离线计算框架MapReduce  将计算过程分为两个阶段,Map和Reduce  Map 阶段并行处理输入数据  Reduce阶段对Map结果进行汇总  Shuffle连接Map和Reduce两个阶段  Map Task将数据写到本地磁盘  Reduce Task从每个Map Task上读取一份数据  仅适合离线批处理  具有很好的容错性和扩展性  适合简单的批处理任务  缺点明显  启动开销大、过多使用磁盘导致效率低下等 dongxicheng.org
  21. 21. hadoop123.com MapReduce On YARN ResourceManager Client Client Applications Manager 1 Resource Scheduler 2 3,8 4 Node Manager Node Manager 6 Map Task Map Task Container 2 7 5 5 MR App MR App Mstr Mstr Container Container 6 Reduce Task Reduce Task 7 7 dongxicheng.org 6 Container Map Task Map Task
  22. 22. hadoop123.com DAG计算框架Tez  多个作业之间存在数据依赖关系,并形成一个依赖关系有 向图( Directed Acyclic Graph ),该图的计算称为 “DAG计算”  Apache Tez:基于YARN的DAG计算框架  运行在YARN之上,充分利用YARN的资源管理和容错等功能;  提供了丰富的数据流(dataflow)API;  扩展性良好的“Input-Processor-Output”运行时模型;  动态生成物理数据流关系。 Phase 2 Map Phase 4 Reduce Phase 1 Phase 5 Map Reduce Reduce Phase 3 dongxicheng.org
  23. 23. hadoop123.com DAG计算框架Tez DAG Job Job1 HDFS HDFS Job2 HDFS Map1 Map1 Map2 Job2 Job1 Using Tez Reduce12 Using Tez Reduce1 Reduce2 Reduce2 HDFS Job3 HDFS HDFS WordCount Job4 Top K WordCount+Top K dongxicheng.org Single Job
  24. 24. hadoop123.com Tez On YARN ResourceManager Client Client Applications Manager 1 Resource Scheduler 2 3,8 4 Node Manager Node Manager 2 Vertex-A Vertex-A Task Task Container 7 5 5 DAG App DAG App Mstr Mstr Container Container 6 Vertex-A Vertex-A Task Task 7 7 dongxicheng.org 6 Container Vertex-A Vertex-A Task Task
  25. 25. hadoop123.com Tez优化技术  ApplicationMaster缓冲池  作业提交到AMPoolServer服务上  预启动若干个ApplicationMaster,形成一个 ApplicationMaster缓冲池  预先启动Container  ApplicationMaster启动时可以预先启动若干个Container  Container重用  任务运行完成后,ApplicationMaster不会马上注销它使 用的Container,而是将它重新分配给其他未运行的任务 dongxicheng.org
  26. 26. hadoop123.com Tez应用场景  直接编写应用程序  Tez提供了一套通用编程接口  适合编写有依赖关系的作业  优化Pig、Hive等引擎  下一代Hive:Stinger  好处1:避免查询语句转换成过多的MapReduce作业后 产生大量不必要的网络和磁盘IO  好处2:更加智能的任务处理引擎 dongxicheng.org
  27. 27. hadoop123.com 流式计算Storm  流式(Streaming)计算,是指被处理的数据 像流水一样不断流入系统,而系统需要针对每条 数据进行实时处理和计算,并永不停止(直到用 户显式杀死进程);  传统做法:由消息队列和消息处理者组成的实时 处理网络进行实时计算; 引自:2013中国大数据技术大会 肖康:“Storm在实时网络攻击检测和分析的应用与改进”, PPT:http://share.csdn.net/slides/1230 缺乏自动化 缺乏健壮性 伸缩性差  Storm出现。 dongxicheng.org
  28. 28. hadoop123.com Worker Executor Blot-A Tasks, topology1 Executor Spout Tasks, topology 2 Executor Blot-1 Tasks, topology 2 Spout Tasks, topology 1 Executor Blot-B Tasks, topology1 Executor Blot-C Tasks, topology1 Executor Blot-B Tasks, topology1 Worker Executor Executor Blot-2 Tasks, topology 2 Executor Blot-1 Tasks, topology 2 Worker Worker Spout Tasks, topology 1 Worker Supervisor Supervisor Zookeeper Supervisor Nimbus Executor Worker 流式计算框架Storm Executor Blot-2 Tasks, topology 2 Executor Blot-2 Tasks, topology 2 dongxicheng.org
  29. 29. hadoop123.com 流式计算框架Storm Topology Blot-A Stream Grouping Blot-C Stream Grouping Task Task Spout Task Task Task Task Task Blot-B Task Task Hadoop MapReduce(MRv1) JobTracker 应用程序名称 编程模型 Nimbus TaskTracker Supervisor Child 系统服务 Storm Worker Job Topology Map/Reduce Spout/Blot Shuffle Stream Grouping dongxicheng.org
  30. 30. hadoop123.com Storm On YARN YARN-MapReduce YARN-MapReduce Client Client YARN-Storm YARN-Storm Client Client YARN-MPI YARN-MPI Client Client Storm ① Submission Resource Manager Node Manager Storm Storm Client Client ⑤ Storm Application Master ③ Nimbus Web UI so Re ② st e equ eR ④ rc u ④ ④ Node Manager Node Manager Container Storm Storm Supervisior Supervisior Container ⑤ Storm Storm Client Client Zookeeper dongxicheng.org MR App MR App Mstr Mstr Map Task Map Task Node Manager …… Storm Storm Supervisior Supervisior
  31. 31. hadoop123.com 内存计算框架Spark  克服MapReduce在迭代式计算和交互式计算方 面的不足;  引入RDD(Resilient Distributed Datasets)数据表示模型;  RDD是一个有容错机制,可以被并行操作的数据 集合,能够被缓存到内存或磁盘上。 引自: “基于Spark on Yarn的淘宝数据挖掘平台”, PPT:http://vdisk.weibo.com/s/dn9q7A_XuVrf dongxicheng.org
  32. 32. hadoop123.com 内存计算框架Spark dongxicheng.org
  33. 33. hadoop123.com Spark On YARN YARN-Spark YARN-Spark Client Client YARN-MapReduce YARN-MapReduce Client Client YARN-MPI YARN-MPI Client Client Spark Submission Resource Manager Node Manager so Re st que Re e ur c Node Manager Node Manager Container Spark Application Master Cluster Web UI Scheduler StandaloneExecutorBackend StandaloneExecutorBackend MR App MR App Mstr Mstr Node Manager …… StandaloneExecutorBackend StandaloneExecutorBackend Container Map Task Map Task dongxicheng.org
  34. 34. hadoop123.com Spark生态系统 dongxicheng.org
  35. 35. hadoop123.com 其他Framework On YARN  Hoya:HBase on YARN ; https://github.com/hortonworks/hoya/  LLAMA:Impala On YARN http://cloudera.github.io/llama/  Kafka On YARN https://github.com/kkasravi/kafka-yarn dongxicheng.org
  36. 36. hadoop123.com 主要内容 1 Hadoop YARN产生背景 2 Hadoop YARN基本架构 3 运行在YARN上的计算框架 4 YARN发展趋势 dongxicheng.org
  37. 37. hadoop123.com 资源管理系统带来的好处  提高集群资源利用率  服务自动化部署 bin/hadoop install hbase -version 0.95.0 -slaves 10 InstallerApp Master zookeeper YARN(资源管理系统) zookeeper zookeeper HDFS2(分布式存储系统) software codebase HBase |__0.92.0 |__0.94.0 |__0.95.0 …… Storm |__0.7.0 |__0.8.0 MYSQL |__5.5.25 |__5.6.12 …… dongxicheng.org
  38. 38. hadoop123.com 资源管理系统发展趋势 双层调度 集中式调度 Scheduling logic Scheduling logic 共享状态调度 Scheduling logic Scheduling logic Scheduling logic subset full state Cluster Machines No concurrency pessimistic concurrency (offers) optimistic concurrency (transactions) 引自:Google论文“Omega: flexible, scalable schedulers for large compute clusters” dongxicheng.org
  39. 39. hadoop123.com YARN自身的完善  调度框架的完善:YARN-896 支持更多的资源类型(网络、磁盘等) 支持更多的调度语义  长作业的在线升级 Storm在线升级等 Container资源动态调整:YARN-1197  容错机制 ResourceManager自身容错 NodeManager宕掉,任务不受影响 ApplicationMaster个性化容错 dongxicheng.org
  40. 40. hadoop123.com 以YARN为核心的生态系统  YARN使得Hadoop生态系统更加强大 吸纳其他开源计算框架,比Storm、Spark等 变为集群管理者 MapReduce Tez Storm Spark Giraph YARN(资源管理系统) HDFS2(分布式存储系统) dongxicheng.org HBase OpenMPI ……
  41. 41. hadoop123.com Hadoop技术内幕 dongxicheng.org
  42. 42. hadoop123.com 引用链接  Hadoop; http://hadoop.apache.org/  Tez http://tez.incubator.apache.org/  Storm http://storm-project.net/  Storm On YARN https://github.com/yahoo/storm-yarn  Spark http://spark.incubator.apache.org/  Spark On YARN https://github.com/apache/incubatorspark/tree/branch-0.8/yarn dongxicheng.org
  43. 43. hadoop123.com 【联系我】 邮 箱:dongxicheng@yahoo.com 微信号:hadoop-123(每天一篇hadoop文章) 微博ID:西成懂 博 客:dongxicheng.org 书 籍:hadoop123.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×