大数据-193 Apache Tez - DAG 作业计算框架 核心解释 工作原理 配置集成

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(已更完)
  • ClickHouse(已更完)
  • Kudu(已更完)
  • Druid(已更完)
  • Kylin(已更完)
  • Elasticsearch(已更完)
  • DataX(已更完)
  • Tez

章节内容

上节我们完成了如下的内容:

  • DataX 异构数据源
  • DataX 使用指南 上手测试

在这里插入图片描述

基本介绍

Tez 是一个运行在 Hadoop 生态系统中的高效数据处理框架,旨在优化批处理和交互式查询。它是 Apache 基金会下的一个开源项目,作为替代 MapReduce 的执行引擎使用。Tez 被设计为高度可扩展和灵活的平台,可以处理复杂的数据处理任务,而不仅限于传统的 MapReduce 计算模型。

Tez 的背景

  • MapReduce 的局限性: Hadoop 最初是基于 MapReduce 编程模型,这种模型虽然简单,但在处理复杂数据处理任务时效率较低。MapReduce 的每一个任务阶段(map 或 reduce)都需要写入磁盘,这会增加 IO 开销和延迟。
  • Tez 的引入: 为了解决这个问题,Tez 允许开发者灵活地构建数据处理 DAG(有向无环图),从而减少中间的磁盘 IO 和不必要的数据处理步骤,提高执行效率。

核心解释

Tez将MapTask和ReduceTask进一步拆分为如下所示的内容:
在这里插入图片描述
Tez的Task由Input、Processor、Output阶段组成,可以表达所有复杂的Map、Reduce操作,如下图所示:

在这里插入图片描述
Tez可以将多个有依赖的作业转换为一个作业(只需要写一次HDFS,中间环节较少),从而大大提升DAG作业的性能,Tez已经被Hortonworks用于Hive引擎优化,经过测试一般小任务比HiveMR的2-3倍速度左右,大任务7-10倍左右,根据情况不同可能不一样。

在这里插入图片描述

Tez+Hive仍然采用MapReduce计算框架,但对DAG的作业依赖关系进行了裁剪,并将多个小作业合并成一个大作业,不仅减少了计算量,而且写HDFS次数也大大减少。

Tez 的工作原理

  • DAG 结构: 在 Tez 中,数据处理任务被表示为一个 DAG(Directed Acyclic Graph,有向无环图),其中每个节点代表一个处理任务,边表示数据的流动方向。不同于 MapReduce 固定的 map 和 reduce 阶段,Tez 可以定义任意数量的任务节点和数据流,从而更加灵活高效。
  • 按需计算模型: Tez 支持按需加载数据,避免了不必要的中间结果存储。数据可以直接在内存中传递,减少磁盘操作,从而加速计算。

Tez 的特点

  • 高效资源管理: Tez 与 YARN(Yet Another Resource Negotiator)无缝集成,能够更高效地分配和使用集群资源。它可以根据工作负载的需求动态调整资源使用,避免了资源的浪费。
  • 可重用的容器: Tez 可以在多个任务之间重用容器(容器是 YARN 分配的执行环境),减少了每次任务启动的开销。
  • 延迟优化: Tez 可以通过减少中间数据的存储和优化数据流来降低任务执行的延迟,这使得它比传统的 MapReduce 更适合实时或近实时的数据处理。
  • 容错性: Tez 支持任务重试和部分失败重算,这意味着在某些任务失败时,不需要重新计算整个作业,能够提高整体的容错性和稳定性。

安装部署

下载软件包: apache-tez-0.9.2-bin.tar.gz
解压缩:

tar -zxvf apache-tez-0.9.0-bin.tar.gz
cd apache-tez-0.9.0-bin/share

将tez的压缩包放到HDFS上:

hdfs dfs -mkdir -p /user/tez
hdfs dfs -put tez.tar.gz /user/tez

$HADOOP_HOME/etc/hadoop/ 下创建 tez-site.xml 文件,做如下配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration><!-- 指定在hdfs上的tez包文件 --><property><name>tez.lib.uris</name><value>hdfs://hadoop1:9000/user/tez/tez.tar.gz</value></property>
</configuration>

保存后将文件复制到集群所有节点

环境变量

增加客户端节点的配置:

vim /etc/profileexport TEZ_CONF_DIR=$HADOOP_CONF_DIR
export TEZ_JARS=/opt/apps/tez/*:/opt/apps/tez/lib/*
export
HADOOP_CLASSPATH=$TEZ_CONF_DIR:$TEZ_JARS:$HADOOP_CLASSPATH

单次配置

Hive这是Tez执行

xhiveset hive.execution.engine=tez;

永久配置

如果是想默认使用Tez,则需要在配置文件中进行修改:

vim $HIVE_HOME/conf/hive-site.xml<property>
<name>hive.execution.engine</name>
<value>tez</value>
</property>

Tez 与 Hive、Pig 的集成

  • Hive on Tez: Hive 是一种基于 SQL 的数据仓库工具,最初使用 MapReduce 作为底层引擎。自从引入 Tez 后,Hive on Tez 大幅提升了查询性能,尤其是在复杂查询场景中。相比于传统的 MapReduce,Tez 的 DAG 模型使得 Hive 可以以更加并行化的方式执行查询。
  • Pig on Tez: Pig 是一种面向数据流的编程语言,通常用于分析和处理大规模数据。Tez 也作为 Pig 的底层引擎使用,极大地提升了 Pig 脚本的执行效率。

Tez 的优势

  • 高性能: 通过减少磁盘 IO、优化任务并行化和重用资源,Tez 显著提升了数据处理的性能,尤其是在复杂查询和数据流处理中。
  • 灵活性: Tez 允许用户根据具体的数据处理需求,构建任意复杂的 DAG,从而打破了 MapReduce 固定阶段的限制。
  • 可扩展性: Tez 在大规模数据处理环境中表现出色,适合在大数据集群中处理大规模、复杂的批处理和流式处理任务。

使用场景

  • 数据仓库查询加速: 许多使用 Hive 的企业已经转向 Tez 来加速 SQL 查询,尤其是涉及到大数据集和复杂操作的场景。
  • 批处理任务优化: Tez 的 DAG 模型使其非常适合执行复杂的批处理任务,如多阶段数据清洗、转换和加载(ETL)工作流。
  • 实时或近实时处理: Tez 可以用于需要低延迟的场景,如实时数据分析和在线报告。

Tez 的局限性

  • 学习曲线: 虽然 Tez 比 MapReduce 灵活高效,但它也更加复杂,要求开发者了解 DAG 模型及其配置。
  • 任务复杂度: 对于非常简单的任务,Tez 的性能提升可能不明显,因此 Tez 更适用于复杂的、多阶段的任务场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/458966.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Anki插件Export deck to html的改造

在Anki中进行复习时&#xff0c;每次只能打开一条笔记。如果积累了很多笔记&#xff0c;有时候会有将它们集中输出成一个pdf进行阅读的想法。Anki插件Export deck to html&#xff08;安装ID&#xff1a;1897277426&#xff09;就有这个功能。但是&#xff0c;这个插件目前存在…

岛津分子泵软件TMP系列分子泵EI-D系列控制电源 EI Monitor(232和485控制)

岛津分子泵软件TMP系列分子泵EI-D系列控制电源 EI Monitor(232和485控制)

探索Unity:从游戏引擎到元宇宙体验,聚焦内容创作

unity是实时3D互动内容创作和运营平台&#xff0c;包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者&#xff0c;借助Unity将创意变成现实。提供一整套完善的软件解决方案&#xff0c;可用于创作、运营和变现任何实时互动的2D和3D内容&#xff0c;支持平台包括手机、…

图为大模型一体机新探索,赋能智能家居行业

在21世纪的今天&#xff0c;科技的飞速进步正以前所未有的速度重塑着我们的生活方式。从智能手机到物联网&#xff0c;从大数据到人工智能&#xff0c;每一项技术创新都在为人类带来前所未有的便利与效率。其中&#xff0c;图为AI大模型一体机作为人工智能领域的最新成果&#…

DiskGenius一键修复磁盘损坏

下午外接磁盘和U盘都出现扇区损坏&#xff0c;估计就是在开着电脑&#xff0c;可能是电脑运行的软件还在对磁盘进行读写&#xff0c;不小心按到笔记本关机键&#xff0c;重新开机读写磁盘分区变得异常卡顿&#xff0c;估摸就是这个原因导致扇区损坏。在进行读写时&#xff0c;整…

深度学习:YOLO v1网络架构、损失值及NMS极大值抑制

引言 随着深度学习的发展&#xff0c;物体检测&#xff08;Object Detection&#xff09;成为计算机视觉领域的一项重要任务。传统的物体检测方法往往依赖于手工设计的特征和滑窗搜索策略&#xff0c;效率低下且效果有限。近年来&#xff0c;基于深度学习的方法&#xff0c;尤…

leetcode-63-不同陆路径II

题解&#xff1a; 1、设dp[i][j]为到达(i,j)点的路径。当grid[i][j]1时,dp[i][j]0;否则dp[i][j]为到达(i-1,j)的最多路径与到达(i,j-1)的最多路径之和。当(i,j)位于第一行时&#xff0c;dp[i][j]dp[i][j-1]。当(i,j)位于第一列时&#xff0c;dp[i][j]dp[i-1][j]。 2、初始化M…

MATLAB锂电概率分布模型

&#x1f3af;要点 概率分布等效电路模型结合了路径相关速率能力及状态估计中滞后效应。纠正了充电状态中时间误差累积及避免开路电压中电压滞后现象。使用电流方向和电池容量相关函数描述开路电压&#xff0c;并使用微分方程描述电压滞后现象。模型结构基于一级相变的材料机制…

新华三H3CNE网络工程师认证—OSPF路由协议

OSPF是典型的链路状态路由协议&#xff0c;是目前业内使用非常广泛的IGP协议之一。本博客将对OSPF路由协议进行总结。 OSPF目前针对IPv4协议使用的是OSPFVersion2(RFC2328)&#xff1b; 针对IPv6协议使用OSPFVersion3(RFC2740)。如无特殊说明本章后续所指的OSPF均为OSPF Versi…

监督学习之逻辑回归

逻辑回归&#xff08;Logistic Regression&#xff09; 逻辑回归是一种用于二分类&#xff08;binary classification&#xff09;问题的统计模型。尽管其名称中有“回归”二字&#xff0c;但逻辑回归实际上用于分类任务。它的核心思想是通过将线性回归的输出映射到一个概率值…

【MATLAB源码-第193期】基于matlab的网络覆盖率NOA优化算法仿真对比VFINOA,VFPSO,VFNGO,VFWOA等算法。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 NOA&#xff08;Network Optimization Algorithm&#xff0c;网络优化算法&#xff09;是一个针对网络覆盖率优化的算法&#xff0c;它主要通过优化网络中节点的分布和配置来提高网络的整体覆盖性能。网络覆盖率是衡量一个无…

基于STM32G0的USB PD协议学习(3)

0、前言 STM32这个平台资源确实很不错&#xff0c;但是里面的PD代码是一个lib库文件&#xff0c;没有开源。可以做来玩玩&#xff0c;但是如果要满足USB-IF认证需求的话&#xff0c;谨慎&#xff01;&#xff01;&#xff01; 这段时间较为繁忙&#xff0c;断更有点严重... …

植物健康,Spring Boot来保障

5系统详细实现 5.1 系统首页 植物健康系统需要登录才可以看到首页。具体界面的展示如图5.1所示。 图5.1 系统首页界面 5.2 咨询专家 可以在咨询专家栏目发布消息。具体界面如图5.2所示。 图5.2 咨询专家界面 5.3 普通植物检查登记 普通员工可以对普通植物检查登记信息进行添…

Linux之权限(2)

权限&#xff08;2&#xff09; 操作&#xff1a;有VS没有 只有文件的拥有者或者root&#xff0c;能修改自己的权限 Linux下能执行真的是一个可执行文件可执行权限 user,group,other和我自己进行身份对比&#xff0c;依次只对比一次 8进制数值表示方法 chmod ax /home/abc.…

基于vue、VantUI、django的程序设计

首先构建vue项目&#xff0c;构建项目点这里 安装 npm install axios axios简介 Axios 是一个基于 promise 的 HTTP 库&#xff0c;用于发起请求和接收响应&#xff0c;实现异步操作 基本使用 axios对象 请求响应拦截 在utils文件夹里新建ajax.js 创建一个axios对象并…

云智慧完成华为原生鸿蒙系统的适配, 透视宝 APM 为用户体验保驾护航

2024 年 10 月 22 日&#xff0c;首个国产移动操作系统 —— 华为原生鸿蒙操作系统 HarmonyOS NEXT 正式面世&#xff0c;成为继 iOS 和 Android 后的全球第三大移动操作系统。HarmonyOS NEXT&#xff0c;从系统内核、数据库根基&#xff0c;到编程语言创新、AI&#xff08;人工…

【WebGis开发 - Cesium】三维可视化项目教程---图层管理拓展图层透明度控制

目录 引言一、为什么要开发图层透明度控制功能二、开发思路整理1. cesium图层api查询1.1 imageryLayer 透明度1.2 primitive 透明度 三、代码编写1. 修改原有图层管理代码2. 新增页面结构3. 编写图层透明度控制方法 四、总结 引言 本教程主要是围绕Cesium这一开源三维框架开展的…

如何通过sip信令以及抓包文件分析媒体发到哪个地方

前言 问题描述&#xff1a;A的媒体没转发到B&#xff0c;B只能听到回铃音&#xff0c;没有A的说话声音&#xff0c;并且fs这边按正常的信令发送了. 分析流程 分析早期媒体发送到哪一个IP 10.19.0.1发送了一个请求给10.19.0.157这个IP&#xff0c;然而这里的SDP媒体地址&am…

react 总结+复习+应用加深

文章目录 一、React生命周期1. 挂载阶段&#xff08;Mounting&#xff09;补充2. 更新阶段&#xff08;Updating&#xff09;补充 static getDerivedStateFromProps 更新阶段应用补充 getSnapshotBeforeUpdate3. 卸载阶段&#xff08;Unmounting&#xff09; 二、React组件间的…

搭建 mongodb 副本集,很详细

搭建 mongodb 副本集&#xff0c;很详细 一、前言二、创建用户1、创建 root 用户2、创建测试用户3、修改用户密码 三、修改配置文件&#xff08;主节点&#xff09;1、开启登录认证2、加上副本集3、最终配置文件 四、副本节点1、创建副本节点目录2、编辑配置文件3、启动副本节点…