使用hadoop jar时如何增加堆大小?

How to increase the heap size when using hadoop jar?

我正在 运行 使用 hadoop jar 命令编写程序。但是,为了使该程序 运行 更快,我需要增加 Hadoop 的堆大小。我尝试了以下方法,但它没有任何效果(我有 hadoop 版本 2.5),即使在同一个终端上也是如此。

export HADOOP_HEAPSIZE=16384
export HADOOP_OPTS="-Xmx16g"

我认为的另一种方法是将以下内容添加到 mapred-site.xml 文件中,但不幸的是我不是管理员,所以不能这样做。

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

还有其他方法吗?

我通过修改HADOOP_CLIENT_OPTS环境变量解决了这个问题,如下图

export HADOOP_CLIENT_OPTS="-Xmx16g $HADOOP_CLIENT_OPTS"

请注意,我使用的程序仅在主节点上运行。换句话说,它不是分布式应用程序。

使用适合我的 Hadoop jar 时增加堆大小的方法:

HADOOP_CLIENT_OPTS="-XX:-UseGCOverheadLimit -Xmx16384m" hadoop jar parquetExample.jar 

如您所见,您在同一行 [=12= 之前设置了环境变量的值(也适用于其他环境变量,在这种情况下,我将最大大小设置为 16384m) ]命令。