HIVE 合併小文件

今天,用Flink寫入hive的時候,突然想到一個問題,就是如果隔一個小時生成一個文件,那麼kafka的並行度爲12,也就是說,一個小時會產生12個文件。一天就是12*24個文件,10天,就有2000多個文件。這個肯定是不可取的。

於是研究一下,如何合併hive小文件,大家可以參考https://cloud.tencent.com/developer/article/1514064 這篇文章。於是基於CDH中,進行了修改

這修改後,保存參數重啓即可。這裏,小文件平均大小合併閾值 16M比較小 ,生產中,可以設置爲128M。

之後  insert overwrite table xxx  select * from xxx;  就會將文件合併重新覆蓋回去。

值得一提的是,對於沒有涉及到的文件(就是hive查詢中,沒有查到的文件,譬如flink寫入時:_part...pending 這種中間文件),

hive並不會覆蓋,這就比較好了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章