Hive"太多的Mappers"使用动态分区时

时间:2015-10-13 14:58:03

标签: hadoop hive hdfs

我正在尝试使用动态分区将数据查询到分区表中。

set hive.exec.parallel=true;
set hive.exec.dynamic.partition.mode=nonstrict;
SET hive.exec.max.dynamic.partitions=10000;
SET hive.exec.max.dynamic.partitions.pernode=1000;


insert overwrite table reporting.ST_YST_FLATTENED partition (dt)
select * from (
select a.ActivityDate
,to_date(c.datecreated) InstallDate
,lower(a.CountryCode) CountryCode
,a.browserguid
,a.installsource
,p.partner
,sum(a.YSTPageViews) YSTPageViews
,Sum(a.YSTClicks) YSTClicks
,sum(a.YSTSearches) YSTSearches
,a.browser
,dt from X) a
DISTRIBUTE BY dt

当我执行WITHOUT"插入覆盖表报告.ST_YST_FLATTENED分区(dt)"映射器的数量是32438,我没有错误。当我尝试插入动态分区时,我得到:

Hadoop job information for Stage-7: number of mappers: 32438; number of reducers: 55
org.apache.hadoop.mapreduce.counters.LimitExceededException: Too many counters: 121 max=120

如果我减少子查询的时间范围,我可以将映射器减少到200,但我仍然得到相同的错误。此时增加默认计数器不是一个选项。

如何减少使用的映射器数量或以其他方式使动态分区工作?

0 个答案:

没有答案