Hive 配置单元:选择*正常,但选择列失败

Hive 配置单元:选择*正常,但选择列失败,hive,Hive,很奇怪,当我输入配置单元查询时: SELECT * FROM tb LIMIT 1; 它成功地从表中返回一行 但是,当我从表中选择一列时,配置单元将失败: SELECT col FROM tb LIMIT 1; 配置单元发出错误消息: 失败:执行错误,从返回代码-101 org.apache.hadoop.hive.ql.exec.mr.MapRedTask。GC开销限制 超过 Hive有什么问题?这看起来像是java内存错误。select*工作,而select列不工作的原因是select*

很奇怪,当我输入配置单元查询时:

SELECT * FROM tb LIMIT 1;
它成功地从表中返回一行

但是,当我从表中选择一列时,配置单元将失败:

SELECT col FROM tb LIMIT 1;
配置单元发出错误消息:

失败:执行错误,从返回代码-101 org.apache.hadoop.hive.ql.exec.mr.MapRedTask。GC开销限制 超过


Hive有什么问题?

这看起来像是java内存错误。select*工作,而select列不工作的原因是select*只是从HDFS中提取一行数据,而不是实际执行map REDUCT作业

您可以通过增加最大堆大小来解决此问题:

export HADOOP_CLIENT_OPTS="-Xmx512m" 

例如,将堆大小设置为512m。

结果表明,我的问题与用户权限有关。当非所有者提交查询时,配置单元似乎为其设置了有限的堆大小。