绪
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中的一个顶点由一定数目的任务组成
一旦一个顶点中所有任务运行完成,则认为该顶点运行结束










网友评论