您好,登錄后才能下訂單哦!
這篇文章主要介紹 hive小文件如何合并,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
起因:
最近倉庫里面新建了一張分區表,數據量大約是12億行,分區比較多,從2008年7月開始 一天一個分區。
配置了一個任務
對這個表進行group by 的時候 發現啟動了2800多個maps .
執行的時間也高大10分鐘。
然后我在hdfs文件里面看到 這個表的每個分區里面都有20多個小文件,每個文件都不大 300KB--1MB
之前的hive的參數:
hive.merge.mapfiles=true
hive.merge.mapredfiles=false
hive.merge.rcfile.block.level=true
hive.merge.size.per.task=256000000
hive.merge.smallfiles.avgsize=16000000
hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat
mapred.max.split.size=256000000
mapred.min.split.size=1
mapred.min.split.size.per.node=1
mapred.min.split.size.per.rack=1
hive.merge.mapredfiles 這個指的是 在Map-Reduce的任務結束時合并小文件
解決辦法:
1.修改參數hive.merge.mapredfiles=true
2.通過map_reduece的辦法生成一張新的表 此時生成的文件變成了每個分區一個文件
再次執行group by 發現效率得到了大大的提升。
以上是“ hive小文件如何合并”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。