hadoop - 使用 Hive 查询超出 GC 开销限制
问题描述
我有一个配置单元表 tableA,它在 adv_id 和 dt 上分区
col_name data_type
adv_id int
url string
dt int
我正在发起一个查询。
SELECT adv_id, url FROM tableA
WHERE
dt = '20200510'
AND adv_id IN (5039) limit 100;
为什么我会收到超出 GC 开销限制的错误,我该如何解决?请注意,使用adv_id = 5039
在这里有效。但我需要检查多个值,因此需要检查 IN 子句。
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at com.mysql.jdbc.SingleByteCharsetConverter.toString(SingleByteCharsetConverter.java:335)
at com.mysql.jdbc.ResultSetRow.getString(ResultSetRow.java:819)
at com.mysql.jdbc.ByteArrayRow.getString(ByteArrayRow.java:70)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5816)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5693)
at org.datanucleus.store.rdbms.mapping.datastore.CharRDBMSMapping.getObject(CharRDBMSMapping.java:473)
at org.datanucleus.store.rdbms.mapping.java.SingleFieldMapping.getObject(SingleFieldMapping.java:220)
at org.datanucleus.store.rdbms.query.ResultClassROF.getObject(ResultClassROF.java:267)
at org.datanucleus.store.rdbms.query.ForwardQueryResult.nextResultSetElement(ForwardQueryResult.java:181)
at
解决方案
推荐阅读
- git - 在 rebase 拆分时修改提交
- windows - 将返回操作系统的短日期格式的 Windows 命令
- javascript - 将 API 返回的数据绑定到下拉列表
- excel - Excel 使用基于用户语言的函数
- laravel - 在另一台机器上运行时 Laravel Mix (Webpack) 错误
- angular - Angular Firebase:访问字段映射以进行身份验证
- google-api - Google Play Developer API - 超出配额
- r - 在R中将字符转换为日期并按日期排序
- c# - 实体框架数据库首先不接受小数点后 12 位的值
- android - 使用 Retrofit 获得 http 代码 200 的响应但正文为空