计算引擎发展-Tez

Tez

简介

Tez是Apache开源的支持 DAG 作业的计算框架,是支持HADOOP2.x的重要引擎。由于Tez是可扩展和可嵌入的,它提供了适合用途的自由来表达高度优化的数据处理应用程序,使它们比面向最终用户的引擎(如 MapReduce 和Apache Spark)更具优势。它直接源于 MapReduce 框架,核心思想是将Map 和 Reduce 两个操作进一步拆分,分解后的元操作可以任意灵活组合,产生新的操作,这些操作经过一些控制程序组装后,可形成一个大的 DAG 作业。从而允许基于有关数据的真实信息以及处理数据所需的资源进行动态性能优化。

工作特性

通过允许像Apache Hive和Apache Pig这样的项目运行复杂的DAG任务,Tez可以用来处理数据,以前需要多个MR作业,现在在单个Tez作业中,如下所示可以减少Map/Reduce之间的文件存储,合理组合其子过程,减少任务运行时间。

表达、建模和执行处理逻辑

Tez 将数据处理建模为数据流图,其中图顶点表示应用程序逻辑,其连接线表示数据移动。丰富的数据流定义 API 允许用户直观地表达复杂的查询逻辑。该 API 非常适合由更高级别的声明性应用程序(如 Apache Hive 和 Apache Pig)生成的查询计划。

Input、Processor和Output模块之间的交互模型

Tez 将数据流图的每个顶点中运行的用户逻辑建模为 Input、Processor 和 Output 模块的组合。Input 和Output决定了数据格式以及读取或写入的方式和位置。Processor 保存数据转换逻辑。Tez 不强加任何数据格式,只要求输入、处理器和输出格式相互兼容。

动态重调整数据流图

分布式数据处理是动态的,很难提前确定最优的数据移动方法。在运行时提供了更多信息,这可能有助于进一步优化执行计划。因此,Tez 包括对可插入顶点管理模块的支持,以收集运行时信息并动态更改数据流图以优化性能和资源利用率。

优化性能和资源管理

YARN 根据集群容量和负载管理 Hadoop 集群中的资源。Tez 执行引擎框架有效地从 YARN 获取资源,能够及时的释放资源,重用 container,节省调度时间,对内存的资源要求率不高。

对于 Tez,它的容错机制相对较弱。当一个任务失败时,Tez 会停止整个作业的执行,并需要手动处理失败的任务或重新启动整个作业。这可能导致一些数据丢失和执行延迟。另外 Tez 只支持 yarn 的运行模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值