深入理解Tez

什么是Tez

MapReduce(下面簡稱MR)的缺點(diǎn)很明顯,性能比較弱,效率不高。 原因在于它只能把Job抽象成為Map, Reduce,但是復(fù)雜的任務(wù)可以有幾十個(gè)MR任務(wù),中間可能會(huì)有很多重復(fù)的任務(wù)。 而且MR并不支持對于整個(gè)pipeline的任務(wù)進(jìn)行優(yōu)化。比如說若干個(gè)MR任務(wù)的組合可以合并成一個(gè)來計(jì)算,這樣就減少了數(shù)據(jù)的讀寫,傳輸?shù)拈_銷。歸根結(jié)底,是因?yàn)镠adoop不支持任務(wù)的DAG(有向無環(huán)圖)描述。

Tez提供了一個(gè)可重用,靈活的框架來支持?jǐn)?shù)據(jù)流模型。他的主要特點(diǎn)是:

  1. 用戶可以將自己的Job描述成一個(gè)DAG,這樣可以進(jìn)行更靈活的優(yōu)化和配置。
  2. 提供了靈活的Runtime API。Tez支持在Runtime對DAG的配置進(jìn)行修改,比如對于partitition的調(diào)整。
  3. 提供了data-locality感知, 資源重用和錯(cuò)誤容忍。

術(shù)語介紹

首先介紹下Tez中會(huì)用到的術(shù)語:

  • DAG: 有向無環(huán)圖, 用來表示數(shù)據(jù)處理的工作流。 而DAG中邊的方向就是數(shù)據(jù)流動(dòng)的方向。
  • Vertex: 有向無環(huán)圖中的節(jié)點(diǎn)代表邏輯上數(shù)據(jù)處理中的一步。可以是數(shù)據(jù)的過濾,轉(zhuǎn)換等。
  • Logical Vertex: 一個(gè)Logical包含一系列的Vertex。
  • Task: 一個(gè)Vertex對應(yīng)的邏輯上的處理在實(shí)際計(jì)算的時(shí)候,會(huì)被分拆成若干個(gè)Tasks并運(yùn)行在不同機(jī)器上。
  • Physical DAG: Physical DAG包含了一個(gè)Logical Vertex中展開的Tasks. //狗屁不通,修改
  • Edge: Logical Vertex中的edge代表了上下游Vertex間的數(shù)據(jù)依賴。 Tasks之間的edge則代表了不同Tasks之間數(shù)據(jù)的流動(dòng)。

Tez架構(gòu)介紹

Tez API

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容