當前位置:編程學習大全網 - 源碼下載 - 黑斑羚和蜂巢有什麽區別?

黑斑羚和蜂巢有什麽區別?

黑斑羚和蜂巢的主要區別如下:

1.不同的執行計劃:

Impala:將執行計劃表示為壹棵完整的執行計劃樹,可以更自然地將執行計劃分配給每個Impala執行查詢,而不是像Hive壹樣組合成流水線map-reduce模式,從而保證Impala更好的並發性,避免不必要的中間排序和洗牌。

Hive的執行計劃分為map-shuffle-reduce-map-shuffle-reduce…模型。如果壹個查詢被編譯成多輪MapReduce,會有更多的中間結果。由於MapReduce執行框架本身的特點,過多的中間過程會增加整個查詢的執行時間。

2.不同的數據流:

Impala:通過all,後續節點通過getNext主動向前壹個節點索要數據,這樣數據就可以流回客戶端,只要處理了1條數據,就可以立即顯示出來,而不是等待所有的處理,更符合SQL交互查詢的使用。

Hive:通過推送,每個計算節點在計算完成後主動將數據推送到後續節點。

3.使用的內存不同:

Impala:當內存放不下數據時,會直接返回錯誤,不使用外接內存。黑斑羚的這種用法目前會比較有限,還是配合蜂巢使用比較好。Impala使用網絡在多級之間傳輸數據,執行過程中不會有磁盤寫操作(除了insert)。

Hive:如果在執行過程中所有的數據都裝不下內存,那麽將使用外部內存來保證查詢能夠按順序執行。在每壹輪MapReduce之後,中間結果也將被寫入HDFS。同樣,由於MapReduce執行架構的特性,shuffle進程也會有寫入本地磁盤的操作。

4.不同的日程安排:

黑斑羚:調度是我們自己做的。目前只有壹種調度器,simple-schedule,它會盡量滿足數據的本地性,掃描數據的過程會盡量靠近數據本身所在的物理機。

Hive:任務調度取決於Hadoop的調度策略。

  • 上一篇:TB1238AN21腳功能及電壓
  • 下一篇:Visual Studio軟件是用來做什麽的?
  • copyright 2024編程學習大全網