MapReduce
MapReduce是一種編程模型,用於大規模數據集(大於1TB)的並行運算。
Tez
Tez是Apache開源的支持DAG作業的計算框架,它直接源於MapReduce框架,核心思想是將Map和Reduce兩個操作進一步拆分,即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,這樣,這些分解后的元操作可以任意靈活組合,產生新的操作,這些操作經過一些控制程序組裝后,可形成一個大的DAG作業。
Spark
Spark是UC Berkeley AMP lab所開源的類Hadoop MapReduce的通用的並行計算框架,Spark基於map reduce算法實現的分布式計算,擁有Hadoop MapReduce所具有的優點;但不同於MapReduce的是Job中間輸出和結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更好地適用於數據挖掘與機器學習等需要迭代的map reduce的算法。
Tez和Mapreduce
核心思想:MapReduce將一個算法抽象成Map和Reduce兩個階段進行處理;Tez將Map和Reduce兩個操作進一步拆分,即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等
依賴DAG:Mapreduce沒有DAG一說,Tez將map和reduce階段拆分成多個階段,分解后的元操作可以任意靈活組合,產生新的操作,這些操作經過一些控制程序組裝后,可形成一個大的DAG作業
落地磁盤:MapReduce會有多次落地磁盤;Tez可以將多個有依賴的作業轉換為一個作業,這樣只需寫一次HDFS,且中間節點較少
Tez和Spark區別
使用場景:spark更像是一個通用的計算引擎,提供內存計算,實時流處理,機器學習等多種計算方式,適合迭代計算;tez作為一個框架工具,特定為hive和pig提供批量計算
運行模式:spark屬於內存計算,支持多種運行模式,可以跑在standalone,yarn上;而tez只能跑在yarn上;雖然spark與yarn兼容,但是spark不適合和其他yarn應用跑在一起
資源利用:tez能夠及時的釋放資源,重用container,節省調度時間,對內存的資源要求率不高; 而spark如果存在迭代計算時,container一直占用資源;
————————————————
版權聲明:本文為CSDN博主「L13763338360」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/L13763338360/article/details/106912743/