运行在YARN上的框架简介

离线计算框架MapReduce

原理:将计算过程分为两个阶段,Map和Reduce。Map 阶段并行处理输入数据,Reduce阶段对Map结果进行汇总。Shuffle连接Map和Reduce两个阶段。MapTask将数据写到本地磁盘,Reduce Task从每个MapTask上读取一份数据。

优点:仅适合离线批处理;具有很好的容错性和扩展性;适合简单的批处理任务

缺点:启动开销大、过多使用磁盘导致效率低下等。

MapReduce 2.0与YARN:

一个MR应用程序的成功运行需要若干模块:任务管理和资源调度;任务驱动模块(MapTask、ReduceTask);用户代码(Mapper、Reducer…)。

MapReduce 2.0和YARN区别:YARN是一个资源管理系统,负责资源管理和调度;MapReduce只是运行在YARN上的一个应用程序。如果把YARN看做“android”,则MapReduce只是一个“app”。

MapReduce2.0组成:YARN(整个集群只有一个)、MRAppMaster(一个应用程序一个)、用户代码(Mapper、Reducer…);

MapReduce 1.0和MapReduce 2.0区别:MapReduce 1.0是一个独立的系统,直接运行在Linux之上。MapReduce 2.0则是运行YARN上的框架,且可与多种框架一起运行在YARN上。

DAG计算框架Tez

1.多个作业之间存在数据依赖关系,并形成一个依赖关系有向图( Directed Acyclic Graph ),该图的计算称为“DAG计算”。

2.Apache Tez:基于YARN的DAG计算框架,运行在YARN之上,充分利用YARN的资源管理和容错等功能;提供了丰富的数据流(dataflow)API;扩展性良好的“Input-Processor-Output”运行时模型;动态生成物理数据流关系。

3.Tez 优化技术:

ApplicationMaster缓冲池;作业提交到AMPoolServer服务上;预启动若干个ApplicationMaster,形成一个ApplicationMaster缓冲池;

预先启动Container,ApplicationMaster启动时可以预先启动若干个Container

Container重用:任务运行完成后,ApplicationMaster不会马上注销它使用的Container,而是将它重新分配给其他未运行的任务。

4.Tez 应用场景

直接编写应用程序:Tez提供了一套通用编程接口,适合编写有依赖关系的作业。

优化Pig、Hive等引擎:下一代Hive:Stinger

好处1:避免查询语句转换成过多的MapReduce作业后产生大量不必要的网络和磁盘IO

好处2:更加智能的任务处理引擎流式计算框架Storm流式(Streaming)计算,是指被处理的数据像流水一样不断流入系统,而系统需要针对每条数据进行实时处理和计算,并永不停止(直到用户显式杀死进程);

传统做法:由消息队列和消息处理者组成的实时处理网络进行实时计算;缺乏自动化、缺乏健壮性、伸缩性差

流式计算框架Storm

内存计算框架Spark

克服MapReduce在迭代式计算和交互式计算方面的不足;

引入RDD(Resilient DistributedDatasets)数据表示模型;RDD是一个有容错机制,可以被并行操作的数据集合,能够被缓存到内存或磁盘上。
版权声明:如涉及版权问题,请作者持权属证明与本网联系

猜你喜欢

转载自my.oschina.net/u/3730630/blog/1794986
今日推荐