当前位置: 首页 > 知识库问答 >
问题:

Tez抛出OOM异常的Hive中的ORDER BY语句

澹台岳
2023-03-14

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

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

这给我一个错误消息,如下所示:

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

只是向您展示SELECT语句在没有ORDER BY的情况下是如何工作的:

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是一个字符串。

以下是完整的错误消息文本

共有1个答案

滕璞瑜
2023-03-14

Map1顶点失败,出现OOM异常:

Java语言lang.RuntimeException:java。lang.OutOfMemoryError:org上的Java堆空间。阿帕奇。hadoop。蜂箱ql.exec。tez。TEZ处理器。初始化DrunProcessor

尝试增加映射器容器和JVM内存。

像这样:

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

但最好检查一下当前的容器和java堆大小,并相应地增加它。阅读本文了解更多详细信息:揭开Tez内存调优的神秘面纱

 类似资料:
  • 在Hive中执行以下查询很好: 分区日期是类型字符串,但这是可以的。目标是删除比特定日期更早的分区。 问题是在哪里可以找到Spark SQL中必须转义的字符,是否有任何方法可以在Spark SQL中编写与在Hive中相同的查询?

  • 抛出异常的行为是否可能抛出不同的异常? 为了抛出异常,必须(可选地)分配新对象,并调用其构造函数(隐式调用fillinstacktrace)。在某些情况下,听起来像addSupressed也被称为。那么如果没有足够的内存会发生什么呢?JVM是否需要预分配内置异常?例如,(1/0)会抛出OutOfMemoryError而不是ArithmeticException吗? 此外,构造函数是一个方法调用,因

  • 在许多地方,我得到了几个已检查的异常,如IOException、ParseException、JSoneException等。我必须做出两个选择之一- > 通过在方法签名的末尾添加抛出来抛出相同的异常。 将检查的异常包装在RuntimeException(或一些自定义实现)中,然后抛出它,以便调用者不必在任何地方添加throws子句并检查异常。 在第一种情况下,我将不得不到处抛出,但我的客户可以通

  • 抛出异常有什么意义?例如,我偶然发现: 但是当你不扔零点的时候,你也会得到一个零点?我经常看到这个,我想知道这是否是一个学习的好习惯?

  • 问题内容: 考虑以下代码: 无需添加方法签名即可编译该代码。(它与同样表现到位,太)。 我理解为什么 可以 安全地运行它,因为实际上不能将其引发在块中,因此不能引发已检查的异常。我有兴趣知道在何处指定此行为。 并非永远都不会达到目标:以下代码也会编译: 但是,如果抛出一个检查的异常,它不会像我期望的那样编译: 在JLS Sec 11.2.2中 ,它说: 一,其抛出的表达式语句(§14.18)具有静

  • 在你可以捕获异常之前,一些代码必须抛出一个异常。任何代码都可能会抛出异常:您的代码,来自其他人编写的包(例如Java平台附带的包)或Java运行时环境的代码。无论是什么引发的异常,它总是通过 throw 语句抛出。 您可能已经注意到,Java平台提供了许多异常类。所有类都是Throwable类的后代,并且都允许程序区分在程序执行期间可能发生的各种类型的异常。 您还可以创建自己的异常类来表示在您编写