分享

Apache tez(1)

helianthus 发表于 2015-12-13 22:57:52 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 0 10497
本帖最后由 helianthus 于 2015-12-17 23:35 编辑

问题导读:
1.Apache tez是什么?
2.Apache tez
应用场景有哪些?
3.
比起mapreduceApache tez的优势在哪里?





1. mapreduce Limitations
      在MR框架中,通过编写严格的input/output模型以及对问题进行分解组合,可以将复杂的分布式应用问题比较容易且高效的实现。但是在MR框架执行过程中,多个有依赖关系的MR之间以及一个MR内部的中间结果都必须要写入磁盘,而且几乎所有的通信过程都要以文件为基础进行传输,这就使得它在应对迭代计算、交互式应用以及图处理等方面因为负载过高而使得执行效率较差。 鉴于MR这些与生俱来的缺点,所以业界又有了弥补这些不足的新技术,比如Apache spark,apache tez。

hadoop框架演进

hadoop框架演进

2. Apache TEZ
(1)tez是一款新型计算框架,专用于构建DAG(Directed AcyclicGraph)计算模型。tez的设计思想有很多源于MR以及Microsoft Dryad等,可以作为MR/HIVE/PIG等的底层框架。也就说是MR可以基于TEZ构建(MR可以看做两个节点的DAG),而因为TEZ出现时,已经有了YARN,所以tez在设计之初,就已经在API层面支持了YARN;也就是说TEZ架构于YARN之上,由java语言开发,完全兼容YARN。
   
(2)tez的应用场景主要面向的是
①用户自定义的逻辑:
用户自定义处理逻辑、用户自定义数据输入输出格式、自定义数据传输方式
②Hive/Pig/cascading这样的交互式系统:   
比如在hive分析数据时,有时会碰到小作业的情况,这时候就可以使用tez而不是MR来提升查询效率,减小查询时间。

(3)tez的性能优势:
1)Late Binding:

   运行时,尽可能晚得使用物理数据。即在逻辑处理阶段会尽可能地优化和DAG动态调整,确保优化后传输最少的数据量,起最少的task。支持运行时对DAG应用程序的动态调整和优化(task并行度、task调度顺序、DAG边、DAG节点)。tez可以在运行时根据上游节点的输出数据量、集群资源情况等动态调整reduce个数,这点很有诱惑力……

2)高效地利用hadoop集群上的资源。

   比如,container重用,即一个任务完成后,Application Master不会立即释放该container和其占用的资源,而是将其分配给需要运行的task,达到资源合理重用,提升任务执行效率的目的。

3)能够根据不同的应用程序需求建立特定的模型

4)各个节点输出的中间结果数据会根据数据量的大小来动态决定放在本地磁盘、分布式文件系统还是内存中(MR的中间结果只能存在磁盘)

mapreduce VS. Tez

mapreduce VS. Tez

3.tez VS spark
(1)最大的区别在于TEZ面向的是应用程序,而spark面向的是最终用户,即TEZ用于构建用户应用程序,而spark则用于直接处理处理。场景不同。
(2)tez由纯JAVA开发,而spark由Scala开发,从语言方面有不同特点。


没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条