gpt4 book ai didi

hadoop - Pig 和 Hive 中生成的映射器数量

转载 作者:可可西里 更新时间:2023-11-01 16:32:46 24 4
gpt4 key购买 nike

我在配置单元中有一个分区表,其中每个分区将有 630 个 gzip 压缩文件,每个平均大小为 100kb。如果我使用 hive 查询这些文件,它将生成恰好 630 个映射器,即一个文件对应一个映射器。
现在作为一个实验,我尝试用 pig 读取这些文件,而 pig 实际上组合了这些文件并仅生成了 2 个映射器和操作比 hive 快得多。
为什么 pig 和 hive 的执行方式不同?在配置单元中,我们可以类似地组合小文件来生成更少的映射器吗?

最佳答案

您需要指定要使用 CombineHiveInputFormat :

set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

您还应该将最小拆分大小设置得更高:

set mapred.min.split.size=100000000;

作为旁注,正是出于这个原因(许多小文件),CombineHiveInputFormat 是 EMR 上的默认 Hive 输入格式,请参阅 How Amazon EMR Hive Differs from Apache Hive .

Pig 执行联合收割机,因为默认情况下处于启用状态,请参阅 Combine Small Input Files :

pig.splitCombination – Turns combine split files on or off (set to “true” by default).

关于hadoop - Pig 和 Hive 中生成的映射器数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22778801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com