如何在hadoop中设置默认java选项而不在运行时重叠

wb1gzix0  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(263)

我打算将默认gc收集器设置为 -XX:+UseSerialGC 运行Yarn应用程序时。
我尝试在hadoop-env.sh中设置这个参数,也没有设置为 HADOOP_OPTS 也不是 HADOOP_CLIENT_OPTS 有效吗:

//hadoop-env.sh
export HADOOP_OPTS="$HADOOP_OPTS -Dmapreduce.map.java.opts='-XX:+UseSerialGC'"
export HADOOP_CLIENT_OPTS="-XX:+UseSerialGC $HADOOP_CLIENT_OPTS"

同样,在mapred-site.xml中设置它时,当我通过 hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar pi -Dmapreduce.map.java.opts="-Xmx256M" 4 1000 ,其中rumtime参数'-dmapreduce.map.java.opts'覆盖mapred-site.xml中的配置。

//mapred-site.xml
<property>
  <name>mapreduce.map.java.opts</name>
  <value>-Xmx1024M -XX:+UseSerialGC</value>
</property>

检查参数是否生效的方法是登录到datanode并发出以下命令:

/usr/java/jdk1.7.0_11/bin/jps -mlv | grep -i gc

有什么解决办法吗?谢谢!

9fkzdhlc

9fkzdhlc1#

您可以指定属性是只读的,并且不能使用final重写,如下所示:

<property>
  <name>mapreduce.map.java.opts</name>
  <value>-Xmx1024M -XX:+UseSerialGC</value>
  <final>true</final>
</property>

相关问题