为hadoop启用UseNUMA标志?

时间:2014-04-10 04:54:23

标签: java bash hadoop flags numa

我希望为使用java的hadoop框架启用UseNUMA标志。

问题是我不知道hadoop框架调用了java命令的所有地方。

所以,我在/etc/bash.bashrc中为java命令编写了

的别名
alias java='java -XX:+UseNUMA'

这是正确的方法吗?

我如何知道旗帜是否开启?我的意思是可以使用以下命令检查这个

# java -XX:+PrintFlagsFinal | grep UseNUMA

但是如何检查hadoop是否正在使用它?

1 个答案:

答案 0 :(得分:0)

在bashrc中创建别名不会有用。 Hadoop使用环境变量JAVA_HOME来定位java home,java命令取自路径$ {JAVA_HOME} / bin / java。所以即使你在.bashrc中创建一个别名,也没用。

要在hadoop守护程序启动期间指定JVM标志,请使用配置文件/hadoop-env.sh指定环境变量中的标志。

export HADOOP_NAMENODE_OPTS="-XX:+UseNUMA -Dcom.sun.management.jmxremote $HADOOP_NAMENODE_OPTS"
export HADOOP_SECONDARYNAMENODE_OPTS="-XX:+UseNUMA -Dcom.sun.management.jmxremote $HADOOP_SECONDARYNAMENODE_OPTS"
export HADOOP_DATANODE_OPTS="-XX:+UseNUMA -Dcom.sun.management.jmxremote $HADOOP_DATANODE_OPTS"
export HADOOP_BALANCER_OPTS="-XX:+UseNUMA -Dcom.sun.management.jmxremote $HADOOP_BALANCER_OPTS"
export HADOOP_JOBTRACKER_OPTS="-XX:+UseNUMA -Dcom.sun.management.jmxremote $HADOOP_JOBTRACKER_OPTS"

在执行像hadoop,yarn,mapred这样的co时在客户端启用相同的功能使用以下环境变量

export HADOOP_OPTS="-XX:+UseNUMA"

为了检查标志是否启用,可以使用以下命令。

ps aux | grep hadoop