一开始出现了两个ResourceManager都是active的情况,但是没在意,杀死一个RM (不杀死跑不动)集群正常启动,也能跑任务。这样的话就不是ha了,于是准备找下错误,反复启动发现,第二台启动时zkfc总是失败,查看logs说什么parentnode 不存在,让再格式化一下(我是在第一台机子上格式化zk的,而且zookeeper上有hadoop-ha借点),同时发现三台机子上zookeeper看到的结点里的东西不一样,于是想是不是zookeeper配错了,结果查看zoo.conf文件是发现没有添加
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
再格式化启动发现还是不行,找了找zookeeper的日志,发现不时出现 connection refuse 的Exception,百度了很多还是解决不了问题,只能试试把zookeeper下的除zookeeper节点以外的节点都删除(虽然格式化zkfc的时候会提示已存在让在创建,但是不知道它有没有删除干净,也可能是之前配置错误的情况下创建了hadoop-ha节点,但是在正常情况下格式化zkfc不能正确格式化。),再进行格式化,然后启动,发现可以了(归零大法)。查看8088发现一个是active状态一个是standby状态。
总结:
错误原因:zoo.conf中没有加
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
改正方法:加上后,删除zookeeper中除zookeeper结点以外的所有节点(因为之前格式化过了zkfc,会创建hadoop-ha节点和yarn-leader-election结点),然后格式化zkfc。
正常情况下,三台机子上连接zookeeper都能看到
错误情况下就可能有台机子的mycluster里什么都没有,我的就是。