【转载】MapReduce和Tez对比

 

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)"。html

Tez是Apache开源的支持DAG做业的计算框架,它直接源于MapReduce框架,核心思想是将Map和Reduce两个操做进一步拆分,即Map被拆分红Input、Processor、Sort、Merge和Output, Reduce被拆分红Input、Shuffle、Sort、Merge、Processor和Output等,这样,这些分解后的元操做能够任意灵活组合,产生新的操做,这些操做通过一些控制程序组装后,可造成一个大的DAG做业。总结起来,Tez有如下特色:
(1)Apache二级开源项目(源代码今天发布的)
(2)运行在YARN之上
(3) 适用于DAG(有向图)应用(同Impala、Dremel和Drill同样,可用于替换Hive/Pig等)算法

 

 

对比举例:编程

传统的MR(包括Hive,Pig和直接编写MR程序)。假设有四个有依赖关系的MR做业(1个较为复杂的Hive SQL语句或者Pig脚本可能被翻译成4个有依赖关系的MR做业)或者用Oozie描述的4个有依赖关系的做业,运行过程以下(其中,绿色是Reduce Task,须要写HDFS):框架

 云状表示写屏蔽(write barrier,一种内核机制,持久写)机器学习

Tez能够将多个有依赖的做业转换为一个做业(这样只需写一次HDFS,且中间节点较少),从而大大提高DAG做业的性能分布式

 

------------------------------oop

Hadoop是基础,其中的HDFS提供文件存储,Yarn进行资源管理。在这上面能够运行MapReduce、Spark、Tez等计算框架。

MapReduce:是一种离线计算框架,将一个算法抽象成Map和Reduce两个阶段进行处理,很是适合数据密集型计算。post

Spark:Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具备的优势;但不一样于MapReduce的是Job中间输出和结果能够保存在内存中,从而再也不须要读写HDFS,所以Spark能更好地适用于数据挖掘与机器学习等须要迭代的map reduce的算法。性能

Storm:MapReduce也不适合进行流式计算、实时分析,好比广告点击计算等。Storm是一个免费开源、分布式、高容错的实时计算系统。Storm令持续不断的流计算变得容易,弥补了Hadoop批处理所不能知足的实时要求。Storm常常用于在实时分析、在线机器学习、持续计算、分布式远程调用和ETL等领域学习

Tez: 是基于Hadoop Yarn之上的DAG(有向无环图,Directed Acyclic Graph)计算框架。它把Map/Reduce过程拆分红若干个子过程,同时能够把多个Map/Reduce任务组合成一个较大的DAG任务,减小了Map/Reduce之间的文件存储。同时合理组合其子过程,也能够减小任务的运行时间

 

转载自:http://www.javashuo.com/article/p-puixuvmx-cs.html

相关文章
相关标签/搜索