我正在使用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>
还有其他方法吗?
答案 0 :(得分:1)
我通过修改HADOOP_CLIENT_OPTS环境变量解决了这个问题,如下所示。
export HADOOP_CLIENT_OPTS="-Xmx16g $HADOOP_CLIENT_OPTS"
请注意,我使用的程序仅在主节点上运行。换句话说,它不是分布式应用程序。
答案 1 :(得分:1)
使用适用于我的Hadoop jar时增加堆大小的一种方法:
HADOOP_CLIENT_OPTS="-XX:-UseGCOverheadLimit -Xmx16384m" hadoop jar parquetExample.jar
如您所见,您在同一行且在16384m
命令之前设置了环境变量的值(也适用于其他环境变量,在这种情况下,我将最大大小设置为hadoop jar
)。