[Hive]hive分割槽設定注意事項

TOMOCAT發表於2018-08-16

1、分割槽不宜過多
建立分割槽可以讓Hive不必對輸入進行全盤掃描,確實可以優化查詢。但是使用過多分割槽會帶來兩方面的問題:
(1)HDFS設計用於儲存數百萬的大檔案,而不是數十億的小檔案。使用過多分割槽會建立大量的非必須的hadoop檔案和資料夾。一個分割槽對應一個包含多個檔案的資料夾。如果指定的表存在數百個分割槽,則可能每天都會建立好幾萬個檔案。
(2)MapReduce會將一個任務(job)轉化成多個任務(task)。預設情況下每個task都是一個JVM例項,都需要開啟和銷燬。對於小檔案,每個檔案都會對應一個task。在一些情況下,JVM開啟和銷燬的時間可能會比實際處理資料的時間要長。
2、理想的分割槽方案不應該產生太多的分割槽和資料夾目錄,並且每個目錄下的檔案應該足夠大,應該是檔案系統中塊的若干倍。
3、如果使用者不能夠找到好的、大小相對合適的分割槽方式的話,那麼可以考慮使用分桶儲存

相關文章