机器配置如下,两台机器,nn2,nn2,搭建基于QJM的高可用集群,zk集群。
如果我在yarn-site.xml中配置的nodemanager的可用资源过少,其他配置如果不一致,那么就会造成提交的job,状态是Accepted,
但是一直是unassigned,没有资源可以分配,所以就不能running.
zookeeper自动切换active ,standby有问题的时候,可以强制手工切换主备。
以下命令是获取服务的状态与进行状态切换的命令。
yarn rmadmin -getServiceState rm1
yarn rmadmin -getServiceState rm2
hdfs haadmin -getServiceState nn1
hdfs haadmin -transitionToActive nn1 –forcemanual
这个指令并不会触发“fencing method”,所以不常用,我们通常使用"hdfs haadmin -failover"来切换Namenode状态。
hdfs haadmin –failover nn1 nn2
active state from nn1 to nn2
2.配置yarn-env.sh 使用jconsole监控nodemanager进程
近来发现某一台集群中的机器一直出现nodemanager的OOM,就尝试使用jconsole进行监控一下。
需要修改yarn-env.sh,改动如下:
YARN_OPTS="$YARN_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=60001 -Djava.rmi.server.hostname=192.168.56.121"
YARN_OPTS="$YARN_OPTS -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
然后在windows上打开console,选择远程连接,填入:192.168.56.121:60001,确定即可。