请问如何合并小文件??

第一节课中讲的合并小文件的优化方法中,该如何合并呢?

李虎翼 - Hive/Hadoop

赞同来自: alexanda2000 day_day_work

hive有开关, https://www.codatlas.com/github.com/apache/hive/master/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java?line=1267   分别是: hive.merge.mapredfiles hive.merge.tezfiles hive.merge.sparkfiles 分别用于合并mapreduce, tez或spark产生的小文件。这三个开关默认都是关的,需要手动打开 其原理是,在作业最后物理执行计划追加一个ConditionalTask(还记得今天讲的什么是ConditionalTask么?) 如果作业输出的平均文件大小小于16M,即hive.merge.smallfiles.avgsize,那么就另起一道作业,做合并。自动化的。但有时候,平均是一个很坑爹的事,比如几百个空文件,加一个巨大的倾斜文件……  

jevons

赞同来自: day_day_work

我们是在主机上用linux脚本cat file1 file2 file3 > file4这样来合并的,不知道 是否有更好的办法?

要回复问题请先登录注册