【发布时间】:2016-07-19 21:25:46
【问题描述】:
我在 Hive 中遇到了一个异常:
java.lang.OutOfMemoryError: 超出 GC 开销限制。
在搜索中,我发现这是因为进程的所有 CPU 时间的 98% 都将用于垃圾收集(无论这意味着什么?)。我的问题的核心是我的查询吗?我应该以不同的方式编写以下内容以避免此类问题吗?
我正在尝试计算在给定时间段内有多少特定手机类型具有有效的“使用”功能。有没有办法以不同的方式执行这个逻辑,这样会更好地运行?
select count(a.imei)
from
(Select distinct imei
from pingdata
where timestamp between TO_DATE("2016-06-01") AND TO_DATE("2016-07-17")
and ((SUBSTR(imei,12,2) = "04") or (SUBSTR(imei,12,2) = "05")) ) a
join
(SELECT distinct imei
FROM eventdata
where timestamp between TO_DATE("2016-06-01") AND TO_DATE("2016-07-17")
AND event = "Use" AND clientversion like '3.2%') b
on a.imei=b.imei
谢谢
【问题讨论】:
标签: performance hadoop hive out-of-memory memory-efficient