Hadoop Hive on Tez中的ORDER BY语句引发OOM异常

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

我正在尝试使用ORDER BY查找在我的Hive表中创建条目的最早时间。声明是这样的

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;