這篇文章主要介紹 hive小文件如何合并,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、泰順網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、成都商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為泰順等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
起因:
最近倉庫里面新建了一張分區(qū)表,數(shù)據(jù)量大約是12億行,分區(qū)比較多,從2008年7月開始 一天一個分區(qū)。
配置了一個任務(wù)
對這個表進行g(shù)roup by 的時候 發(fā)現(xiàn)啟動了2800多個maps .
執(zhí)行的時間也高大10分鐘。
然后我在hdfs文件里面看到 這個表的每個分區(qū)里面都有20多個小文件,每個文件都不大 300KB--1MB
之前的hive的參數(shù):
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的任務(wù)結(jié)束時合并小文件
解決辦法:
1.修改參數(shù)hive.merge.mapredfiles=true
2.通過map_reduece的辦法生成一張新的表 此時生成的文件變成了每個分區(qū)一個文件
再次執(zhí)行g(shù)roup by 發(fā)現(xiàn)效率得到了大大的提升。
以上是“ hive小文件如何合并”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!