Tez 实现原理

article/2025/11/1 2:26:13

文章目录

  • 简介
    • Tez的实现
    • Tez+Hive与Impala区别

简介

Tez是Apache开源的支持DAG作业的计算框架,是支持HADOOP2.x的重要引擎。它源于MapReduce框架,核心思想是将Map和Reduce两个操作进一步拆分,分解后的元操作可以任意灵活组合,产生新的操作,这些操作经过一些控制程序组装后,可形成一个大的DAG作业

在这里插入图片描述

Tez将Map task和Reduce task进一步拆分为如下图所示,

在这里插入图片描述
Tez的task由Input、processor、output阶段组成,可以表达所有复杂的map、reduce操作,如下图,

在这里插入图片描述
举个例子看优势,直接看下图,Tez可以将多个有依赖的作业转换为一个作业(这样只需写一次HDFS,且中间节点较少),从而大大提升DAG作业的性能。Tez已被Hortonworks用于Hive引擎的优化,经测试,性能提升约100倍。

在这里插入图片描述

在这里插入图片描述

Tez的实现

Tez对外提供了6种可编程组件,分别是:
1)Input:对输入数据源的抽象,它解析输入数据格式,并吐出一个个Key/value

2)Output:对输出数据源的抽象,它将用户程序产生的Key/value写入文件系统

3)Paritioner:对数据进行分片,类似于MR中的Partitioner

4)Processor:对计算的抽象,它从一个Input中获取数据,经处理后,通过Output输出

5)Task:对任务的抽象,每个Task由一个Input、Ouput和Processor组成

6)Maser:管理各个Task的依赖关系,并按顺依赖关系执行他们

除了以上6种组件,Tez还提供了两种算子,分别是Sort(排序)和Shuffle(混洗),为了用户使用方便,它还提供了多种Input、Output、Task和Sort的实现,具体如下:
1)Input实现:LocalMergedInput(文件本地合并后作为输入),ShuffledMergedInput(远程拷贝数据且合并后作为输入)

2)Output实现:InMemorySortedOutput(内存排序后输出),LocalOnFileSorterOutput(本地磁盘排序后输出),OnFileSortedOutput(磁盘排序后输出)

3)Task实现:RunTimeTask(非常简单的Task,基本没做什么事)

4)Sort实现:DefaultSorter(本地数据排序),InMemoryShuffleSorter(远程拷贝数据并排序)

为了展示Tez的使用方法和验证Tez框架的可用性,Apache在YARN MRAppMaster基础上使用Tez编程接口重新设计了MapReduce框架,使之可运行在YARN中。为此,Tez提供了以下几个组件:

1)Input:SimpleInput(直接使用MR InputFormat获取数据)

2)Output:SimpleOutput(直接使用MR OutputFormat获取数据)

3)Partition:MRPartitioner(直接使用MR Partitioner获取数据)

4)Processor:MapProcessor(执行Map Task),ReduceProcessor(执行Reduce Task)

5)Task:FinalTask,InitialTask,initialTaskWithInMemSort,InitialTaskWithLocalSort ,IntermediateTask,LocalFinalTask,MapOnlyTask。

对于MapReduce作业而言,如果只有Map Task,则使用MapOnlyTask,否则,Map Task使用InitialTaskWithInMemSort而Reduce Task用FinalTask。当然,如果你想编写其他类型的作业,可使用以上任何几种Task进行组合,比如”InitialTaskWithInMemSort –> FinalTask”是MapReduce作业。

为了减少Tez开发工作量,并让Tez能够运行在YARN之上,Tez重用了大部分YARN 中MRAppMater的代码,包括客户端、资源申请、任务推测执行、任务启动等。

Tez+Hive与Impala区别

Tez+Hive与Impala均可用于解决Hive/Pig延迟大、性能低效的问题,Impala的出发点是抛弃MapReduce计算框架,不再将SQL或者PIG语句翻译成MR程序,而是采用传统数据数据库的方式,直接从DataNode上存取数据,而Tez+Hive则不同,Tez+Hive仍采用MapReduce计算框架,但对DAG的作业依赖关系进行了裁剪,并将多个小作业合并成一个大作业,这样,不仅计算量减少,而且写HDFS次数也会大大减少


http://chatgpt.dhexx.cn/article/N0r3I4Xm.shtml

相关文章

安装Tez Ui

tomcat下载 wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.73/bin/apache-tomcat-8.5.73.tar.gz tez下载 wget https://repository.apache.org/content/repositories/releases/org/apache/tez/tez-ui/0.9.1/tez-ui-0.9.1.war 解压: tar -zxvf apache…

Hive3.1.2 on Tez0.10.1的安装部署

一、Hive环境搭建 Hive安装部署 1)把apache-hive-3.1.2-bin.tar.gz上传到linux的/opt/software目录下 2)解压apache-hive-3.1.2-bin.tar.gz到/opt/module/目录下面 [yilihadoop102 software]$ tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -…

HIVE-TEZ引擎配置安装

HIVE-TEZ引擎配置安装 基础环境准备参考安装流程1. TEZ环境准备1. 编译工具2. HADOOP3. PROTOBUF安装流程 4. LZO安装流程 5. TEZ安装流程 2. TEZ配置1. HADOOPtez-site.xmltez.sh 2. HIVEhive-site.xmlhive-env.sh日志JAR包冲突 END! 基础环境准备 由于该文章主要关注TEZ引擎…

Tez安装与使用(与hive配合使用)及lzo.jar报错错误解决

1 tez介绍 tez是一个apache的开源项目,意在构建一个应用框架,能通过复杂任务的DAG来处理数据。它是基于当前的hadoop yarn之上,换句话就是yarn为其提供资源。 tez主要的两个设计目标: 增强终端用户使用: 灵活的数据流定义API 灵活的输入…

Tez安装配置

介绍:hive默认计算引擎为MR,而MR的特性决定了它的运算速度并不是太让人满意。在此将其运算引擎修改为Tez(当然在此需要先安装Tez),Tez基于内存的计算使得hive可以有更高的运算效率 对于 Tez 0.8.3 及更高版本&#xf…

计算引擎Tez安装

1.解压压缩包 tar -zxvf apache-tez-0.9.2-bin.tar.gz2.将tez路径下的压缩包放到hdfs上 /opt/lagou/servers/tez/share/tez.tar.gzhdfs dfs -mkdir /user/tez hdfs dfs -put tez.tar.gz /user/tez/3.配置hadoop让其他地方知道该路径 该路径下新建配置文件tez-site.xml /opt/…

tez得文件生成个数与什么有关?

之前研究过hive on spark,最后的文件生成个数hive-mapJoin和skewJoin-CSDN博客 现在在cdp了 使用的是hive on tez。也在学习下这个文件的生成个数与什么有关? 以该表为例 有11个文件 每个差不多60M左右 总共620M左右。 我们先想下 哪些参数和生成的文件…

hive-tez

1 参考: https://www.freesion.com/article/9435149734/ https://blog.csdn.net/Shea1992/article/details/101041244 https://www.jianshu.com/p/9fb9f32e1f0f https://www.jianshu.com/p/45c95a51a8c2 https://blog.csdn.net/weixin_43941899/article/details/105…

CDH6.3.2搭建HIVE ON TEZ步骤

|引言 参考:CDH6.3.2 hive on tez搭建过程_我不是橙子的博客-CSDN博客 CDH6.3.2版本搭建Tez执行引擎过程 - 虎啸千峰 - 博客园 hive on tez集成完整采坑指南(含tez-ui及安全环境)_匆匆z2的博客-CSDN博客_hive on tez 下载过程中若是感觉慢的话可以参考这个操作步…

tez-ui docker镜像打包配置并部署K8S

一、下载tez ui安装包并修改配置文件 1.1 选择版本下载, tez-ui下载官方地址 mkdir tez-ui && cd tez-ui wget https://repository.apache.org/content/repositories/releases/org/apache/tez/tez-ui/0.9.1/tez-ui-0.9.1.war1.2 解压war包,修改…

Apache Tez 了解

转发自这位大佬博客:https://www.cnblogs.com/rongfengliang/p/6991020.html 你可能听说过Apache Tez,它是一个针对Hadoop数据处理应用程序的新分布式执行框架。但是它到底是什么呢?它的工作原理是什么?哪些人应该使用它&#xf…

Tez - 安装

一、Tez 安装 1 下载地址 https://mirrors.tuna.tsinghua.edu.cn/apache/tez/0.9.0/ 2 二进制包安装 2.1 解压并重命名 [roothadoop01 ~]# tar -zxvf /home/apache-tez-0.9.0-bin.tar.gz -C /usr/local/ [roothadoop01 ~]# mv /usr/local/apache-tez-0.9.0-bin/ /usr/local/t…

tez详解

1 tez的概览 1.1 tez介绍 1.1.1 介绍 tez是一个apache的开源项目,意在构建一个应用框架,能通过复杂任务的DAG来处理数据。它是基于当前的hadoop yarn之上,换句话就是yarn为其提供资源。 tez主要的两个设计目标: 增强终端用户使用: 灵活…

TEZ深入理解

简介 Tez是Apache开源的支持DAG作业的计算框架,是支持HADOOP2.x的重要引擎。它源于MapReduce框架,核心思想是将Map和Reduce两个操作进一步拆分,分解后的元操作可以任意灵活组合,产生新的操作,这些操作经过一些控制程序…

Tez 简介

目录 一、Tez简介 二、Tez UI界面 三、Tez 日志 一、Tez简介 1.1 Tez 是支持 DAG 作业的开源计算框架,它可以将多个有依赖的作业转换为一个作业从而大幅提升 DAG 作业的性能。 从本质上讲,Tez 组成非常简单: 数据处理管道引擎&#xff…

TEZ介绍及使用

TEZ介绍及使用 TEZ是什么? Tez是支持DAG作业的开源计算框架,它可以将多个有依赖的作业转换为一个作业从而大幅提升DAG 作业的性能。 Tez源于MapReduce框架,核心思想是将Map和Reduce两个操作进一步拆分,即Map被拆分成Input、Proc…

BACnet安全连接(BACnet/SC) 介绍

BACnet安全连接(BACnet/SC)是ASHRAE BACnet委员会最近发布的BACnet协议的增编。是在增编135-2016bj中介绍的。它基于一个安全的、加密的数据链路层。 专门设计以满足不同IP基础结构。对BACnet通信使用标准化的、通常已经存在的IP网络基础设施的需求正在增加,BACnet/…

BACnet学习笔记

BACnet是一种用于自动化建筑和控制网络的数据通信协议。(Building Automation and Control Networks) 自控网络通信协议基本体系: CAN -- 只定义了通信标准 BACnet BAC Model and Message Network Layer LANs The protocol can be viewed as a matrix of layers. Propertie…

BACnet协议简要说明及组网简介

主题概要BACnet协议BACnet协议简要说明,组网简介编辑时间新建20160217序号参考资料1BACnet协议正文1995版2http://www.bacnet.org/Tutorial/BACnetIP/ 1 协议说明 BACnet协议(A Data Communication Protocol for Building Automation and Control Networks)&#…

BACnet协议详解——应用层说明一

文章目录 写在前面1. 应用层模型1.1 需确认的应用层服务1.2 无需确认的应用层服务2 BACnet报文的分段2.1 报文分段规则2.1.1 APDU数据流的分段规则2.1.2 APDU最大长度的确定2.1.3 可接受的最大分段数2.2 分段协议控制信息(PCI)写在前面 年关将至,事情有点多,耽误了原本定好…