3

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

SELECT latitude, longitude, timeiss
FROM iss
ORDER BY timeiss
LIMIT 10;

这给了我一个看起来像这样的错误消息:

https://i.imgur.com/cgIiSKh.png

只是为了向您展示没有 ORDER BY 的 SELECT 语句如何工作:

https://i.imgur.com/k6RwAd4.png

latitude    longitude   timeiss
-26.6542    -96.9894    2018-11-28 10:13:42
-39.6293    -80.6984    2018-11-28 10:18:45

尝试时我遇到了几乎相同的错误

SELECT MIN(timeiss)
FROM iss

timeiss 是一个字符串。

这是完整的错误消息文本

java.sql.SQLException:处理语句时出错:FAILED:执行错误,从 org.apache.hadoop.hive.ql.exec.tez.TezTask 返回代码 2。顶点失败,vertexName=Map 1,vertexId=vertex_1541164145004_0025_1_00,诊断=[任务失败,taskId=task_1541164145004_0025_1_00_000000,诊断=[TaskAttempt 0 失败,info=[错误:运行任务时失败:java.lang.RuntimeException:java.lang.OutOfMemory : org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.initializeAndRunProcessor(TezProcessor.java:159) 处的 Java 堆空间java:139) 在 org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:347) 在 org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:194) 在 org.阿帕奇.tez。tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:149) ... 14 更多]],由于 OWN_TASK_FAILURE,Vertex 没有成功,failedTasks:1killedTasks:0,Vertex vertex_1541164145004_0025_1_00 [Map 1] 由于:OWN_TASK_FAILURE]Vertex 而被杀死/失败已终止,vertexName=Reducer 2,vertexId=vertex_1541164145004_0025_1_01,diagnostics=[Vertex 在 RUNNING 状态下收到 Kill。,由于 OTHER_VERTEX_FAILURE,Vertex 未成功,failedTasks:0killedTasks:1,Vertex vertex_1541164145004_0025_1_01 [Reducer 2] OTHER_VERTEX_FAILURE]由于 VERTEX_FAILURE,DAG 未成功。失败顶点:1 杀死顶点:1 Vertex vertex_1541164145004_0025_1_00 [Map 1] 由于:OWN_TASK_FAILURE 被杀死/失败]Vertex 被杀死,vertexName=Reducer 2,vertexId=vertex_1541164145004_0025_1_01,diagnostics=[Vertex 在 RUNNING 状态下收到 Kill。,Vertex 没有成功,由于 OTHER_VERs_TasksTEXTasks:IL0_VERsFAILs 被杀死:1,顶点 vertex_1541164145004_0025_1_01 [Reducer 2] 由于:OTHER_VERTEX_FAILURE 而被杀死/失败] DAG 由于 VERTEX_FAILURE 而没有成功。失败顶点:1 杀死顶点:1 Vertex vertex_1541164145004_0025_1_00 [Map 1] 由于:OWN_TASK_FAILURE 被杀死/失败]Vertex 被杀死,vertexName=Reducer 2,vertexId=vertex_1541164145004_0025_1_01,diagnostics=[Vertex 在 RUNNING 状态下收到 Kill。,Vertex 没有成功,由于 OTHER_VERs_TasksTEXTasks:IL0_VERsFAILs 被杀死:1,顶点 vertex_1541164145004_0025_1_01 [Reducer 2] 由于:OTHER_VERTEX_FAILURE 而被杀死/失败] DAG 由于 VERTEX_FAILURE 而没有成功。失败顶点:1 杀死顶点:1 OTHER_VERTEX_FAILURE]由于 VERTEX_FAILURE,DAG 未成功。失败顶点:1 杀死顶点:1 OTHER_VERTEX_FAILURE]由于 VERTEX_FAILURE,DAG 未成功。失败顶点:1 杀死顶点:1

4

1 回答 1

1

Map1 顶点因 OOM 异常而失败:

java.lang.RuntimeException:java.lang.OutOfMemoryError:org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor 处的 Java 堆空间

尝试增加 Mapper 容器和 JVM 内存。

像这样:

set hive.tez.container.size=9216;
set hive.tez.java.opts=-Xmx6144m;

但最好检查您当前的容器和 Java 堆大小并相应地增加它。阅读本文了解更多详情:揭秘 Tez 内存调优

于 2018-12-17T15:24:48.037 回答