2016-09-14 57 views
0

許多最佳實踐都表明數據應該以HDFS壓縮格式存儲。配置單元中的壓縮如何提高查詢性能?

有明確的性能差異,同時運行一個蜂巢的查詢在包含壓縮的文本文件的表(分塊的每個大約250 MB的gzip文件)對未壓縮的文本文件。

有人能請解釋一下什麼是發生在幕後?

按我的理解,而查詢輸入被分配到映射器的任務,還有一個減壓階段,然後有一個查詢。如果是這樣的話,它如何提供比未壓縮的文本文件更好的性能,因爲它將會產生解壓縮的開銷?

回答

1

有兩個方面這裏涉及到:

  1. 網絡開銷:地圖降低範式嚴厲的批評開銷洗牌和排序。如果你以非常自私的方式看待處理步驟,那麼這些步驟在你想要的處理中沒有任何貢獻。此外,即使您使用千兆位頻率切換,當更大的數據流過物理層的網絡時(如果它不涉及非常複雜的操作),那麼隨機排序就會成爲瓶頸。因此,更容易將數據壓縮成可通過混洗類瓶頸的數據。
  2. 稀疏數據:較大的數據集大多稀疏(存在例外,但將其作爲經驗法則)。所以壓縮帶來了數據的大小,然後再次洗牌排序步驟非常小。在蜂巢表
+0

嗨!感謝你的回答,它確實解釋了一些事情。我們有一個連接到集羣的SAN存儲。性能瓶頸是否仍然起作用? –

+0

我不是100%知道SAN的人,但是如果SAN在多個映射器和多個縮減器之間的海量數據流中無法改進,那麼它將成爲瓶頸。 – abhiieor

-1

數據compressesion已是衆所周知給比未存儲更好的性能,無論是在磁盤使用和查詢性能方面。

您可以導入用gzip壓縮直接放入存儲爲文本文件表中的文本文件。壓縮將被自動檢測並且在查詢執行期間文件將被實時解壓縮。

記錄單獨壓縮每一值,而BLOCK做壓縮前緩存1MB起來(默認)。