YARN应用场景、原理与基本架构

YARN应用场景、原理与基本架构
(1) YARN概念解释
ResourceManager: 整个集群的资源管理器,负责集群资源的统一管理与调度,包括处理客户端请求,启动和监控ApplicationMaster,监控NodeManager,进行资源的统一调度与分配等。
NodeManager: 为集群中节点所拥有的资源管理器,负责所在节点的资源管理与使用,包括负责所在节点上的资源管理和任务调度,处理来自ResourceManager的命令,处理来自ApplicationMaster的命令等。
资源调度器: 对多种类型资源进行调度的工具。目前支持CPU和内存两种关键资源。可使用FIFO、Fair Scheduler、Capacity Scheduler等资源调度算法。
Container: 对任务运行环境的抽象,描述了一系列信息,包括任务运行资源(节点、内存、CPU)、任务启动命令、任务运行环境等。

(2) YARN带来的好处:
1) 解决Hadoop 1.0中应用JobTracker扩展性受限的问题。
2) 解决Hadoop 1.0中JobTracker单点故障问题。
3) 使Hadoop支持MapReduce之外的框架,充分利用和共享集群的软硬件资源。

(3) MapReduce、Tez、Storm、Spark四个框架的异同:
虽然都运行在Hadoop上面(确切地说,是YARN上面),四个框架分别专注于离线计算、DAG计算、流式计算、内存计算的问题,相应的应用领域有所不同;从原理上分析,它们在YARN之上的实现机制不同。

(4) 技术选型
1) 视频流实时分析:Storm——流式计算框架的实时流处理特性正好适合视频流实时分析。
2) 搜索引擎日志分析(TB级):MapReduce——专长于海量日志数据的离线处理,为此而生。
3) 迭代式的数据挖掘算法,比如K-Means:Tez——DAG计算框架,适合于多个作业之间存在数据依赖关系、形成类似有向无环图结构的计算,比如K-means算法的计算。
4) 使用类SQL语言分析数据:HBase——HBase拥有类似SQL的数据查询语言HQL。

0 个评论

要回复文章请先登录注册