Your browser is out of date

Update your browser to view this website correctly. Update my browser now

×

Apache Tez

Hadoop 中基于 YARN 的数据处理应用程序框架

Apache™ Tez 是一种可扩展的框架,用于构建高性能的批处理和交互式数据处理应用程序,由 Apache Hadoop 中的 YARN 进行协调。Tez 通过显著提高速度来改进 MapReduce 范例,同时保持 MapReduce 扩展到数PB数据的能力。重要的 Hadoop 生态系统项目(例如 Apache Hive 和 Apache Pig)都会使用 Apache Tez,以及针对更广泛的 Hadoop 生态系统开发的越来越多的第三方数据访问应用程序也是如此。

Hive with Tez

作为 SQL-In-Hadoop 的事实标准, Apache Hive 对于 PB 级的批处理和交互式查询都是最佳选择。Hive 中嵌入了 Tez,因此它可以将复杂的 SQL 语句转换为高度优化的、专门设计的数据处理图表,该图表在性能、吞吐量和可扩展性之间实现了适当的平衡。Apache Tez的创新推动了 Stinger计划带来的诸多Hive性能改进,这是一项广泛的社区协作的成果,其中包括来自44个不同组织的 145 名工程师的贡献。Tez 可以帮助 Hive 实现互动。

Tez 可以做什么

Apache Tez 提供了一个开发人员 API 和框架来编写本机 YARN 应用程序,这些应用程序可以跨接交互式和批处理工作负载的范围。Apache Tez 允许这些数据访问应用程序在数千个节点上使用数 PB 的数据。Apache Tez 组件库允许开发人员创建 Hadoop 应用程序,这些应用程序本身与 Apache Hadoop YARN 相集成,并在混合工作负载集群中表现得非常出色。由于Tez具有可扩展性和可嵌入性,因此它可以自如地表达高度优化的数据处理应用程序,使其比面向终端用户的引擎(例如 MapReduceApache Spark)更具优势。此外,Tez 还提供了可定制的执行架构,允许用户将复杂的计算表达为数据流图,允许基于有关数据的实际信息和处理它所需的资源进行动态性能优化。

h1h2tez

 

Tez 的工作方式

Apache Tez 对 Hadoop 数据处理能力的改进远远超出了 Apache Hive 和 Apache Pig 的优势。该项目针对交互式工作负载与 YARN 的真正集成设定了标准。请阅读以下关于 Apache Tez 如何完成核心任务的简要说明。

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

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

输入、处理和输出模块之间的模型交互

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

动态重新配置图形

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

优化性能和资源管理

YARN 根据集群容量和负载管理 Hadoop 集群中的资源Tez 执行引擎框架能够有效地从 YARN 中获取资源并重复使用管道中的每一个组件,从而不会造成不必要的重复操作。

用于定义有向无环图(DAG)的 API

Tez 定义了一种简单的 Java API 来表达数据处理的有向无环图(DAG)。API 包含三个组件

  • 有向无环图(DAG)- 定义了整体作业过程。用户针对每一个数据处理作业创建了一个有向无环图(DAG)对象。
  • 顶点(Vertex) - 定义了用户逻辑,以及执行用户逻辑所需的资源与环境。用户针对作业中的每一个步骤创建了一个顶点(Vertex)对象,并将其添加到有向无环图(DAG)中。
  • 边缘(Edge) - 定义了生产者和消费者顶点之间的连接。用户创建了边缘对象,并使用该边缘对象来连接生产者和消费者顶点。

重复使用容器

Tez 遵循传统的 Hadoop 模型,即将作业划分为单独的任务,所有这些任务都是代表用户通过 YARN 作为流程运行的。这种模型存在流程启动和初始化的固有成本,可以处理执行缓慢的任务(stragglers)并通过 YARN 资源管理器分配每个容器。

Your form submission has failed.

This may have been caused by one of the following:

  • Your request timed out
  • A plugin/browser extension blocked the submission. If you have an ad blocking plugin please disable it and close this message to reload the page.