hive Sql的動態分割槽問題

啦啦啦one發表於2024-04-01

在透過Hive SQL向Parquet或者ORC格式的表插入資料時,如果開啟的分割槽數量太多。很容易導致OOM。即便資料只有小小的幾M。

主要原因是在寫入這些檔案之前,需要將這些批次的行快取到記憶體中。

每一個動態分割槽目錄都會有一個檔案寫入器。因為這些緩衝區都是按照分割槽維護的。所以所需記憶體隨著分割槽數量的增加而增加。

解決辦法:

將 hive.optimize.sort.dynamic.partition 設定為true。

相關文章