Hive 查询执行失败

Posted

技术标签:

【中文标题】Hive 查询执行失败【英文标题】:Hive query execution failed 【发布时间】:2016-11-28 06:35:10 【问题描述】:

我正在执行一个配置单元查询并且它失败了。 我使用了以下设置参数。

SET hive.execution.engine=tez ;
SET tez.am.resource.memory.mb=4096;
SET hive.tez.container.size=4096;
set hive.compute.query.using.stats=true;
set hive.stats.fetch.column.stats=true;
set hive.stats.fetch.partition.stats=true;
SET hive.execution.engine=tez ;
SET hive.vectorized.execution.enabled=false;
SET hive.auto.convert.join=false;

我收到了错误。

顶点失败,顶点名称=地图 38, vertexId=vertex_1479183638971_463139_1_22,诊断=[任务失败, taskId=task_1479183638971_463139_1_22_000036, diagnostics=[TaskAttempt 0 failed, info=[Container container_1479183638971_463139_01_000556 完成了诊断集 至 [容器失败,exitCode=-104。 容器 [pid=31713,containerID=container_1479183638971_463139_01_000556] 是 超出物理内存限制。当前使用情况:4.2 GB 的 4 GB 使用的物理内存;

所以我已经尝试使用并行选项,以下参数仍然出现一些不同的错误。

SET hive.execution.engine=tez ;
SET tez.am.resource.memory.mb=4096;
SET hive.tez.container.size=4096;
set hive.compute.query.using.stats=true;
set hive.stats.fetch.column.stats=true;
set hive.stats.fetch.partition.stats=true;
SET hive.execution.engine=tez ;
SET hive.vectorized.execution.enabled=false;
SET hive.auto.convert.join=false;
SET tez.am.java.opts=-server -Xmx3276m -Djava.net.preferIPv4Stack=true -XX:+UseNUMA -XX:+UseParallelGC;
SET hive.tez.java.opts=-server -Xmx3276m -Djava.net.preferIPv4Stack=true -XX:+UseNUMA -XX:+UseParallelGC;

我收到了错误。

状态:失败 超出计数器限制:计数器太多:2001 max=2000 失败: 执行错误,返回代码 2 从 org.apache.hadoop.hive.ql.exec.tez.TezTask。超出计数器限制: 计数器太多:2001 max=2000

请帮助我。如何执行我的查询。

提前致谢。

【问题讨论】:

你能粘贴完整的日志吗 我们不匹配日志。只是我提供的控制台上显示的任何信息 你试过这个***.com/questions/20899050/… 老兄感谢您的建议>因为它是生产环境,我没有更改它的权限。任何其他方式将不胜感激。 嗨伙计们有什么建议 【参考方案1】:

SET hive.execution.engine=mr ; 它会工作

【讨论】:

以上是关于Hive 查询执行失败的主要内容,如果未能解决你的问题,请参考以下文章

Hive 查询执行时间过长

多个 Hive 连接因执行错误而失败,返回代码 2

从 Beeline 连接时,Hive 查询在 Tez 上失败,但在 Map-Reduce 上成功

来自 Spark 的 Hive 查询 - 无法解析

Hive 查询失败并出现分析异常

Hive 查询因堆问题而失败