tez on yarn

Tez

  Tez俗稱DAG計算,多個計算作業之間存在依賴關係,並形成一個依賴關係的有向圖。

  Tez是運行在Yarn上的DAG,動態的生成計算的關係流。

 

 

 

  如上圖左所示的Top K問題,第一個Mapreduce實現wordcount的功能,第二個Mapreduce只用使用Reduce實現排序的問題,但是在Mapreduce中必須創建兩個MapReduce任務,但是在Tez優化後,可以直接再第一個reduce後,不進行輸出,直接輸出到第二個reduce中,優化了Mapreduce.

  上圖中右爲一個HiveQL實現的MapReduce,mapreduce爲其創建了4個mapreduce任務,使用Tez可以只使用一個Mapreduce任務。

  Tez on Yarn和,mapreduce on Yarn上的作業的流程基本一樣。

  Tez的優化技術

  產生一個Mapreduce任務就提交,影響任務的效率,Tez的優化策略是創建一個ApplicationMaster的緩存池,作業提交到AMppplserver中,預先啓動若干ApplicationMaster形成AM緩衝池。

  同時ApplicationMaster啓動的時候也可以預先啓動幾個container,做爲容器的緩衝池。

  此外ApplicationMaster運行完成後,不會馬上註銷其下的container,而是將其預先分配給正要運行的任務。

  Tez的好處就是避免產生較多的Mapreduce任務,產生不必要的網絡和磁盤IO.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章