绪
Tez
是Apache
开源的支持DAG
作业的计算框架
直接源于MapReduce
框架,核心思想是将Map
和Reduce
两个操作进一步拆分
Map
被拆分成Input
、Processor
、Sort
、Merge
和Output
Reduce
被拆分成Input
、Shuffle
、Sort
、Merge
、Processor
和Output
Tez数据处理引擎
Tez
数据处理引擎实现了一些常见的组件
Tez
数据处理引擎的基础是Sort
(排序)和Shuffle
(混洗)
Tez
提供了多种Input
、Output
、Task
和Sort
的实现
Input
实现:LocalMergedInput
(多个文件本地合并后作为输入)、ShuffledMergedInput
(远程拷贝数据且合并后作为输入)
Output
实现:InMemorySortedOutput
(内存排序后输出)、LocalOnFileSorterOutput
(本地磁盘排序后输出)、OnFileSortedOutput
(磁盘排序后输出)
Task
实现:RunTimeTask
Sort
实现:DefaultSorter
(本地数据排序)、InMemoryShuffleSorter
(远程拷贝数据并排序)
Tez ApplicationMaster
Tez ApplicationMaster
直接源于MapReduce
的ApplicationMaster
,重用了大部分机制和代码
功能
数据切分和作业分解
任务调度
与ResourceManager
进行通信,为DAG
作业申请资源
与NodeManager
进行通信,启动DAG
作业中的任务
监控DAG
作业的运行过程,确保它快速运行结束
每个DAGAppMaster
负责管理一个DAG
作业
DAGAppMaster
优先为那些不依赖任何顶点的任务申请资源
DAG
中的一个顶点由一定数目的任务组成
一旦一个顶点中所有任务运行完成,则认为该顶点运行结束
网友评论