【发布时间】:2017-09-14 12:29:31
【问题描述】:
我正在 Google dataproc 集群上从一个表运行 Hive 插入覆盖查询
13783531
记录到另一个分区表而不进行任何转换。 失败并出现错误
Diagnostic Messages for this Task:
Error: Java heap space
FAILED: Execution Error, return code 2 from
org.apache.hadoop.hive.ql.exec.mr.MapRedTask
MapReduce Jobs Launched:
Stage-Stage-1: Map: 34 Cumulative CPU: 1416.18 sec HDFS Read: 6633737937
HDFS Write: 0 FAIL
集群详情
n1-standard-16 (16 vCPU, 60.0 GB memory)
有 5 个工作节点。
误差在 超出 Java 堆空间和 GC 开销限制。 我尝试设置参数
set mapreduce.map.memory.mb=7698;
set mapreduce.reduce.memory.mb=7689;
set mapreduce.map.java.opts=-Xmx7186m;
set mapreduce.reduce.java.opts=-Xmx7186m;
仍然失败。
【问题讨论】:
-
你的桌子是拼花格式的吗?
-
@lake 表格为文本格式
-
两个表?如果是这种情况,您能否确保源表文件有效?例如,不是所有数据的大线?
-
在您设置参数的示例中,对于
map,您的java.opts正确小于memory.mb,但对于reduce,则相反;这只是问题中的一个错字,还是您实际上在蜂巢中将它们颠倒了?
标签: java hadoop hive google-cloud-platform google-cloud-dataproc