【问题标题】:Hive on EMR | Number of mappers | Hive pointing to S3 LocationEMR 上的蜂巢 |映射器数量 | Hive 指向 S3 位置
【发布时间】:2020-09-19 18:31:05
【问题描述】:
第一季度。
我有一个指向 S3 位置的配置单元表“rates”,每个位置只包含两个大小为 677MB 的文件:
当我计算记录总数时,它只是启动了 2 个映射器。为什么会这样?我怎样才能增加它?
第二季度。我有另一个配置单元表“demo_tb1”指向 S3 位置,其中包含 4000 个大小仅为 2.7 KB 的文件:
当我计算记录总数时,它只是启动 1 个映射器。而且执行起来要花太多时间。
【问题讨论】:
标签:
amazon-s3
hive
amazon-emr
【解决方案1】:
为作业启动的映射器数量主要取决于您操作的数据大小。正如您所观察到的,有 4000 个 2.7 KB 的文件,每个文件只启动了 1 个映射器,而有 2 个 677 MB 的文件,每个文件启动了 2 个映射器。
如何增加映射器的数量?
有一个名为mapreduce.input.fileinputformat.split.maxsize 的配置。您需要将此配置的值减小到一些较小的数字。
我怎么知道这个配置的当前值是多少?
只需运行此命令,无需在配置单元编辑器中指定这样的值。
SET mapreduce.input.fileinputformat.split.maxsize;
这将以字节为单位给出结果。
如何更改此配置的值?
例如,运行此命令将其更改为 16MB。
set mapreduce.input.fileinputformat.split.maxsize=16777216;
注意:请根据您想要的并行度(映射器数量)更改该值。
我希望这会有所帮助。