gpt4 book ai didi

Hive Map加入: out of memory Exception

转载 作者:行者123 更新时间:2023-12-04 10:18:36 25 4
gpt4 key购买 nike

我正在尝试使用一个大表(10G)和一个小表(230 MB)来执行 map 方面的操作。在连接了关键列之后,使用小列时,我将使用所有列来生成输出记录

我已经使用了以下设置

设置hive.auto.convert.join = true;

设置hive.mapjoin.smalltable.filesize = 262144000;

日志:

**2013-09-20 02:43:50     Starting to launch local task to process map join;      maximum       memory = 1065484288

2013-09-20 02:44:05 Processing rows: 200000 Hashtable size: 199999 Memory usage: 430269904 rate:0.404

2013-09-20 02:44:14 Processing rows: 300000 Hashtable size: 299999 Memory usage: 643070664 rate:0.604

Exception in thread "Thread-0" java.lang.OutOfMemoryError: Java heap space
at java.util.jar.Manifest$FastInputStream.<init>(Manifest.java:313)
at java.util.jar.Manifest$FastInputStream.<init>(Manifest.java:308)
at java.util.jar.Manifest.read(Manifest.java:176)
at java.util.jar.Manifest.<init>(Manifest.java:50)
at java.util.jar.JarFile.getManifestFromReference(JarFile.java:168)
at java.util.jar.JarFile.getManifest(JarFile.java:149)
at sun.misc.URLClassPath$JarLoader$2.getManifest(URLClassPath.java:696)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:228)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at org.apache.hadoop.util.RunJar$1.run(RunJar.java:126)
Execution failed with exit status: 3
Obtaining error information
Task failed!
Task ID:
Stage-7
Logs:
FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.MapredLocalTask
ATTEMPT: Execute BackupTask: org.apache.hadoop.hive.ql.exec.MapRedTask**

但是我仍然面临OOM异常,在群集中设置的堆大小为1 GB。
请协助我需要考虑和调整哪些属性,以使此 map 侧加入工作

最佳答案

Processing rows: 300000 Hashtable size: 299999 Memory usage: 643070664 rate:0.604



在30万行中,HT已使用了您堆的60%。第一个要问的问题:您确定表顺序正确吗,联接中的小表确实是数据中的小表吗?编写查询时,大表应该是JOIN子句中的最后一个表。您使用的是哪个Hive版本0.9或0.11?

如果您使用的是Hive 0.11,并且正确指定了连接,那么首先要尝试的是增加堆的大小。从上面的数据(300k行〜> 650Mb堆)中,您可以算出需要多少堆。

关于Hive Map加入: out of memory Exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18913928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com