緒
Tez是Apache開源的支持DAG作業(yè)的計算框架
直接源于MapReduce框架,核心思想是將Map和Reduce兩個操作進一步拆分
Map被拆分成Input、Processor、Sort、Merge和Output
Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output
Tez數(shù)據(jù)處理引擎
Tez數(shù)據(jù)處理引擎實現(xiàn)了一些常見的組件
Tez數(shù)據(jù)處理引擎的基礎(chǔ)是Sort(排序)和Shuffle(混洗)
Tez提供了多種Input、Output、Task和Sort的實現(xiàn)
Input實現(xiàn):LocalMergedInput(多個文件本地合并后作為輸入)、ShuffledMergedInput(遠程拷貝數(shù)據(jù)且合并后作為輸入)
Output實現(xiàn):InMemorySortedOutput(內(nèi)存排序后輸出)、LocalOnFileSorterOutput(本地磁盤排序后輸出)、OnFileSortedOutput(磁盤排序后輸出)
Task實現(xiàn):RunTimeTask
Sort實現(xiàn):DefaultSorter(本地數(shù)據(jù)排序)、InMemoryShuffleSorter(遠程拷貝數(shù)據(jù)并排序)
Tez ApplicationMaster
Tez ApplicationMaster直接源于MapReduce的ApplicationMaster,重用了大部分機制和代碼
功能
數(shù)據(jù)切分和作業(yè)分解
任務(wù)調(diào)度
與ResourceManager進行通信,為DAG作業(yè)申請資源
與NodeManager進行通信,啟動DAG作業(yè)中的任務(wù)
監(jiān)控DAG作業(yè)的運行過程,確保它快速運行結(jié)束
每個DAGAppMaster負責(zé)管理一個DAG作業(yè)
DAGAppMaster優(yōu)先為那些不依賴任何頂點的任務(wù)申請資源
DAG中的一個頂點由一定數(shù)目的任務(wù)組成
一旦一個頂點中所有任務(wù)運行完成,則認為該頂點運行結(jié)束