【发布时间】:2016-10-01 18:31:51
【问题描述】:
我已经使用 674 个映射器运行了一个仅映射作业,其中 hive 已经生成了 674 个 .gz 文件我想将这些文件合并到大约 30-35 个文件。尝试了 hive megre mapfilse 属性,但没有获得合并的输出
【问题讨论】:
我已经使用 674 个映射器运行了一个仅映射作业,其中 hive 已经生成了 674 个 .gz 文件我想将这些文件合并到大约 30-35 个文件。尝试了 hive megre mapfilse 属性,但没有获得合并的输出
【问题讨论】:
尝试使用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。
参考:
【讨论】: