我已经运行了一个只有674个映射器的地图作业,其中hive生成了674个.gz文件我希望将这些文件合并到30-35个文件中。通过不获取合并输出尝试了hive megre mapfilse属性
答案 0 :(得分:8)
尝试使用TEZ
执行引擎,然后hive.merge.tezfiles
。您可能还想指定大小。
set hive.execution.engine=tez; -- TEZ execution engine
set hive.merge.tezfiles=true; -- Notifying that merge step is required
set hive.merge.smallfiles.avgsize=128000000; --128MB
set hive.merge.size.per.task=128000000; -- 128MB
如果您想使用MR
引擎,请添加以下设置(我尚未亲自尝试过)
set hive.merge.mapredfiles=true; -- Notifying that merge step is required
set hive.merge.smallfiles.avgsize=128000000; --128MB
set hive.merge.size.per.task=128000000; -- 128MB
以上设置将产生一个合并文件的步骤,每个零件文件的大小应为128MB。
参考: