Hadoop合并文件

时间:2016-10-01 18:31:52

标签: hive hiveql

我已经运行了一个只有674个映射器的地图作业,其中hive生成了674个.gz文件我希望将这些文件合并到30-35个文件中。通过不获取合并输出尝试了hive megre mapfilse属性

1 个答案:

答案 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。

参考: