Hadoop Hive on Tez中的ORDER BY语句引发OOM异常
我正在尝试使用ORDER BY查找在我的Hive表中创建条目的最早时间。声明是这样的Hadoop Hive on Tez中的ORDER BY语句引发OOM异常,hadoop,hive,out-of-memory,apache-tez,Hadoop,Hive,Out Of Memory,Apache Tez,我正在尝试使用ORDER BY查找在我的Hive表中创建条目的最早时间。声明是这样的 SELECT latitude, longitude, timeiss FROM iss ORDER BY timeiss LIMIT 10; 这会给我一条错误消息,如下所示: 仅向您展示SELECT语句在没有ORDER的情况下的工作方式: 我试的时候也犯了同样的错误 SELECT MIN(timeiss) FROM iss 顺便说一句,timeiss是一个字符串 以下是完整的错误消息文本 java.s
SELECT latitude, longitude, timeiss
FROM iss
ORDER BY timeiss
LIMIT 10;
这会给我一条错误消息,如下所示:
仅向您展示SELECT语句在没有ORDER的情况下的工作方式:
我试的时候也犯了同样的错误
SELECT MIN(timeiss)
FROM iss
顺便说一句,timeiss是一个字符串
以下是完整的错误消息文本
java.sql.SQLException:处理语句时出错:失败:
执行错误,从返回代码2
org.apache.hadoop.hive.ql.exec.tez.TezTask。顶点失败,
vertexName=Map 1,vertexId=vertex_154116414504_0025_1_00,
诊断=[任务失败,任务ID=任务\u 154116414504\u 0025\u 1\u 00\u000000,
诊断=[任务尝试0失败,信息=[错误:运行时失败]
任务:java.lang.RuntimeException:java.lang.OutOfMemoryError:java堆
空间在
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:159)
在
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:139)
在
org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:347)
在
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:194)
在
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:185)
位于java.security.AccessController.doPrivileged(本机方法)
javax.security.auth.Subject.doAs(Subject.java:422)位于
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1724)
在
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.callInternal(TezTaskRunner.java:185)
在
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.callInternal(TezTaskRunner.java:181)
位于org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
在
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
在java.lang.Thread.run(Thread.java:745)处,由以下原因引起:
java.lang.OutOfMemoryError:位于的java堆空间
HeapByteBuffer.java:57)
allocate(ByteBuffer.java:335)位于
org.apache.tez.runtime.library.common.sort.impl.PipelinedSorter.(PipelinedSorter.java:173)
在
org.apache.tez.runtime.library.common.sort.impl.PipelinedSorter.(PipelinedSorter.java:117)
在
org.apache.tez.runtime.library.output.OrderedPartitionedKVOutput.start(OrderedPartitionedKVOutput.java:142)
在
org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.init(MapRecordProcessor.java:138)
在
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:149)
…14个以上],任务尝试1失败,信息=[错误:失败
正在运行的任务:java.lang.RuntimeException:java.lang.OutOfMemoryError:
Java堆空间位于
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:159)
在
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:139)
在
org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:347)
在
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:194)
在
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:185)
位于java.security.AccessController.doPrivileged(本机方法)
javax.security.auth.Subject.doAs(Subject.java:422)位于
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1724)
在
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.callInternal(TezTaskRunner.java:185)
在
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.callInternal(TezTaskRunner.java:181)
位于org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
在
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
在java.lang.Thread.run(Thread.java:745)处,由以下原因引起:
java.lang.OutOfMemoryError:位于的java堆空间
HeapByteBuffer.java:57)
allocate(ByteBuffer.java:335)位于
org.apache.tez.runtime.library.common.sort.impl.PipelinedSorter.(PipelinedSorter.java:173)
在
org.apache.tez.runtime.library.common.sort.impl.PipelinedSorter.(PipelinedSorter.java:117)
在
org.apache.tez.runtime.library.output.OrderedPartitionedKVOutput.start(OrderedPartitionedKVOutput.java:142)
在
org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.init(MapRecordProcessor.java:138)
在
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:149)
…14个以上],任务尝试2失败,信息=[错误:失败
正在运行的任务:java.lang.RuntimeException:java.lang.OutOfMemoryError:
Java堆空间位于
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:159)
在
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:139)
在
org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:347)
在
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:194)
在
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:185)
位于java.security.AccessController.doPrivileged(本机方法)
javax.security.auth.Subject.doAs(Subject.java:422)位于
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1724)
在
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.callInternal(TezTaskRunner.java:185)
在
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.callInternal(TezTaskRunner.ja
SELECT MIN(timeiss)
FROM iss
set hive.tez.container.size=9216;
set hive.tez.java.opts=-Xmx6144m;