Hive 查询使用过多的 reducer 运行

Posted

技术标签:

【中文标题】Hive 查询使用过多的 reducer 运行【英文标题】:Hive Queries are running with too many reducers 【发布时间】:2015-06-08 12:59:05 【问题描述】:

最近我们从 Hadoop 2.0.0-cdh4.2.1 升级到了 Hadoop 2.6.0-cdh5.4.2。 现在我们使用 Hive 1.1.0-cdh5.4.2。

当我运行一个简单的 hive 查询时,它使用了太多的 reducer,在以前的版本中它需要 120 个 reducer,而在新版本中它需要 1100 个 reducer。

谁能告诉我为什么会这样?

提前致谢。

【问题讨论】:

请添加,您正在执行的查询。 查询:select id1, day, seq, count(1) from table_name where 1=1 and concat(day,hour)>='2015-05-3004' and concat(day,hour) 【参考方案1】:

reducer 的数量由 hive 决定,具体取决于您分配的字节数或您使用的查询类型(使用 count 并只需选择 *)。请在此处查看更多信息。 here

【讨论】:

当我在升级前运行相同的查询时,它需要 120 个减速器,升级后它需要 1100 个减速器。 升级前后配置参数(ive.exec.reducers.bytes.per.reducer)是否一样? This post 也可以帮助您了解更多。快乐学习和编码

以上是关于Hive 查询使用过多的 reducer 运行的主要内容,如果未能解决你的问题,请参考以下文章

hive中的小文件问题

执行查询时,hive 是不是运行 hadoop?

hive中控制文件生产个数

从 Beeline 连接时,Hive 查询在 Tez 上失败,但在 Map-Reduce 上成功

hive reduce 阶段GC Exception

如何编写查询以避免在 select distinct 和 size collect_set hive 查询中使用单个 reducer?