先看官網介紹:
介紹
ApacheTEZ®項目旨在構建一個應用程序框架,該框架允許使用複雜的有向無環圖來處理數據。它當前構建在Apache Hadoop YARN之上。
Tez的2個主要設計主題是:
- 通過以下方式增強最終用戶的能力:
- 富有表現力的數據流定義API
- 靈活的輸入-處理器-輸出運行時模型
- 不可知數據類型
- 簡化部署
- 執行性能
- 與Map Reduce相比性能提升
- 最佳資源管理
- 在運行時計劃重新配置
- 動態物理數據流決策
通過允許諸如Apache Hive和Apache Pig之類的項目運行復雜的DAG任務,Tez可以用於處理數據,該數據以前需要執行多個MR作業,而現在在單個Tez作業中,如下所示。
看不懂沒關係,我也看不懂。只能看懂點皮毛,那我們就來講講這一點皮毛吧。
首先來看看它的定位,(問題1)這是個什麼東西?
Tez是一個計算引擎。可以運行於YARN之上。YARN你知道的吧?它是hadoop在2.x版本中進化出的一個通用資源調度器,可以用來跑MR程序、Spark程序、Storm程序、Flink程序、Storm程序當然還有今天的主角Tez程序。
(問題2)爲啥要用它?
和MapReduce相比更快,和Spark相比喫更少的內存。
由於DAG運算流程的優化,性能比MapReduce好,速度比它快。再者它比spark對內存的依賴程度低一些。在配置有限的情況下,構建數倉選擇計算引擎時是個比較折衷的選擇。
(問題3)怎麼用?
部署:具體看這裏
https://tez.apache.org/install.html
(我警告你,你別噴我啊!這不是懶,是對你負責!)
使用:
1.在其之上部署應用框架使用它,例如hive、pig等等。
2.直接使用java,調用其API進行操作。下面這張圖是我給你截的API的圖。地址在這裏:
http://tez.apache.org/releases/0.5.0/tez-api-javadocs/org/apache/tez/dag/api/package-summary.html
API:
建議:據我短淺的見識,Tez還是主要用來作爲Hive和Pig的計算引擎比較好用。因爲它的API感覺是不如Spark、Flink友好的。而且資料不是特別多,我只能說這麼多了,兄臺看着辦。