如何在 Hadoop 中增加 java 堆大小

how to increase java heap size in Hadoop

我正在使用 Hadoop 2.6.0 版本 并尝试将 运行 Hive 插入到 table 中,但出现 JAVA 堆错误.

有什么方法可以在整个集群中增加 hadoop 中的堆大小?

提前致谢

为此,您可以在执行 hadoop 命令之前执行以下操作:

export HADOOP_HEAPSIZE=4096

或者,您可以通过在 mapred-site.xml 文件中添加以下永久设置来实现相同的目的,该文件位于 HADOOP_HOME/conf/ :

<property>
    <name>mapred.child.java.opts</name>
    <value>-Xmx4096m</value>
</property>

另请看这里: https://www.mapr.com/blog/how-to-avoid-java-heap-space-errors-understanding-and-managing-task-attempt-memory

在某些情况下,任何此类 export 语句都会被覆盖。

无论我从命令行分配给任何此类变量的值是什么,它都会获取环境文件中定义的相同旧 属性。

为了让它起作用,我必须编辑语句: export HADOOP_HEAPSIZE="[size in MB]" 在文件 hadoop-env.sh

但是,请记住它类似于硬编码,其效果将在全局范围内反映,除非被覆盖。