HA搭建用到的命令和问题
1.命令
hdfs dfsadmin -report // 查看hdfs的各节点状态信息
hdfs haadmin -getServiceState nn1 // 获取一个namenode节点的HA状态
hadoop-daemon.sh start namenode // 单独启动一个namenode进程
hadoop-daemon.sh start zkfc // 单独启动一个zkfc进程
hdfs haadmin -getServiceState master1 // 验证NameNode的状态
yarn rmadmin -getServiceState rm1 // 验证RM的状态
hadoop namenode -recover // 数据恢复
hadoop dfsadmin -safemode leave // 离开安全模式
2.具体错误没截图,大致说一下以及解决方法
2.1 NameNode都是standby状态:原因是hadoop-env.sh中的JAVA_HOME没配置成全路径,日志里面是报错了的
网上其他原因:hdfs zkfc –formatZK #zookeeper没格式化
2.2 NameNode进程kill掉之后,原先的standby状态没有切换,重启kill掉的NameNode,standby切换为active状态:
少配置一个免密码登录,这个不能省,配的是对自己的免密码 hdfs-site.xml
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
2.3 ResourceManager都是standby状态:还是配置问题(而且日志一直报地址已被使用)
yarn-site.xml-------------------------
<!--注意:此处和对应的RM所在机器ip一致!!! -->
<property>
<name>yarn.resourcemanager.ha.id</name>
<value>rm1</value>
<description>If we want to launch more than one RM in single node, we need this configuration</description>
</property>
2.4 启动NameNode,只启动成功一个,报错:什么tid不对,期望可能是18,得到是19
估计NameNode格式化多了,造成数据损坏,网上说恢复一下数据:hadoop namenode -recover
最终也没解决,重新部署了一遍,然后好了!!!!!
2.5 还有一个插曲 zookeeper集群部署,有一台看不到jps看不到QuorumPeerMain,查看状态又可以查看到,但是选举机制无效
最终无意中发现,这台机器的另一个用户配置过zookeeper,而且jps能查看到,直接清除掉了给用户的zookeeper,kill掉进程
问题解决