我希望为使用java的hadoop框架启用UseNUMA标志。
问题是我不知道hadoop框架调用了java命令的所有地方。
所以,我在/etc/bash.bashrc
中为java命令编写了
alias java='java -XX:+UseNUMA'
这是正确的方法吗?
我如何知道旗帜是否开启?我的意思是可以使用以下命令检查这个
# java -XX:+PrintFlagsFinal | grep UseNUMA
但是如何检查hadoop是否正在使用它?
答案 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