Hadoop合并文件

Raj*_*hek 4 hive hiveql

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

Amb*_*ish 9

尝试使用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
Run Code Online (Sandbox Code Playgroud)

如果你想使用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
Run Code Online (Sandbox Code Playgroud)

上面的设置将产生一个合并文件的步骤,每个零件文件的大小应该是128MB.

参考: