当前位置: 首页 > news >正文

Tez原理

Tez 是一个基于 Hadoop YARN 的可扩展的、高性能的计算框架,主要用于在 Hadoop 集群上执行复杂的、有向无环图(DAG)形式的任务。其原理如下:

计算模型

  • Tez 将计算任务表示为有向无环图(DAG),其中顶点表示任务,边表示任务之间的数据依赖关系。这种模型能够更灵活地描述复杂的计算流程,例如在 ETL(Extract,Transform,Load)作业中,可能有多个数据转换步骤,每个步骤都依赖于前一个步骤的输出,Tez 可以很好地处理这种情况。

执行过程

  • 任务调度:Tez 依赖于 YARN 来进行资源管理和任务调度。当一个 Tez 作业提交时,它会向 YARN 请求资源,YARN 会根据集群的资源情况为 Tez 作业分配容器(Container)。Tez 会将 DAG 中的任务分配到这些容器中执行,根据任务之间的依赖关系,有序地启动各个任务。
  • 数据传输:在任务执行过程中,数据在不同任务之间的传输是通过 Shuffle 和 Sort 机制实现的。例如,在 MapReduce 作业中,Map 任务的输出需要经过 Shuffle 阶段才能被 Reduce 任务获取。Tez 对 Shuffle 过程进行了优化,它可以将数据直接从一个任务的输出缓冲区传输到另一个任务的输入缓冲区,减少了数据在磁盘上的读写,提高了数据传输效率。

优化机制

  • 内存管理:Tez 对内存的使用进行了精细的管理。它会根据任务的需求动态地分配和调整内存,尽量将数据缓存在内存中,以减少磁盘 I/O。例如,对于一些中间结果数据,如果内存空间允许,Tez 会将其存储在内存中,供后续任务直接读取,避免了从磁盘读取数据的开销。
  • 任务融合:Tez 允许将多个小任务融合成一个大任务来执行,减少了任务启动的开销。比如,在一个数据处理流程中,如果有多个连续的小任务,它们之间的数据传输量较小,Tez 可以将这些任务合并成一个任务,在同一个容器中执行,这样可以减少任务调度和数据传输的时间。

相关文章:

  • OpenCV 图形API(44)颜色空间转换-----将图像从 BGR 色彩空间转换为 RGB 色彩空间函数BGR2RGB()
  • C++23 让 Lambda 表达式中的 () 更可选:P1102R2 提案深度解析
  • 在Ubuntu上查看PCL(Point Cloud Library)的版本
  • NLP高频面试题(四十九)大模型RAG常见面试题解析
  • SystemVerilog语法之定宽数组
  • 年化112.5%,最大回撤24.3%,卡玛比率4.62 | polars因子引擎重构完成(python源代码下载)
  • 智驱未来:AI大模型重构数据治理新范式
  • 声学重构+交互创新,特伦斯便携钢琴V30Pro专业演奏的移动化时代
  • [预备知识]2. PyTorch基本操作
  • MCP 框架中,stdio 模式和 SSE(Server-Sent Events) 模式的区别是什么
  • Pytorch的极简transformer用于时间序列预测
  • 【技术派后端篇】技术派中基于 Redis 的缓存实践
  • 分类算法中one-vs-rest策略和one-vs-one 策略的区别是什么?
  • 1.2软考系统架构设计师:系统架构的定义与作用 - 练习题附答案及超详细解析
  • C#+Visual Studio 2022为AutoCAD 2022开发插件并显示在Ribbon选项卡
  • [原理分析]安卓15系统大升级:Doze打盹模式提速50%,续航大幅增强,省电提升率5%
  • 单片机可以用来做机器人吗?
  • 算法之分而治之
  • Unity 场景管理核心教程:从 LoadScene 到 Loading Screen 实战 (Day 35)
  • 配置 VS Code 使用 ESLint 格式化
  • 复旦大学附属中山医院也有儿科了,门诊将于下月底开业
  • 马上评|京东VS美团,消费者希望看到的不是“口水仗”
  • 心源性猝死正“猎杀”年轻人,这几招保命法则要学会
  • 占比超1/3,江苏何以连续多年霸榜“千亿县”?
  • 撤销逾千名留学生签证,特朗普政府面临集体诉讼
  • 华夏幸福:累计未能如期偿还债务金额合计为227.91亿元