- 这个bug确实恶心的不要不要的。我一开始以为是我自己打开方式(毕竟不熟悉搭建流程,别人怎么做,我照着做)
- 我照着视频或者博客编写hdfs-site.xml(dfs.ha.fencing.methods)
- 但是一直再start-dfs.sh 后(DFSZKFailoverController进程没有启动)
- 在stop-dfs.sh后提示(no zkfc to stop)
- 我一开始当然顺势去看日志(程序员不看日志处理,还能干什么?)
- 因为在start-dfs.sh看到
看到zkfc的日志在$HADOOP_HOME/log下的hadoop-root-zkfc-package.out,那log就估计也在这里了。
- 一开始没有调试经验,一进去看使用vim $HADOOP_HOME/log/hadoop-root-zkfc-package.log
- 看到的是
- 以为没有什么日志可看,就草草把vim关闭。
- 看到没有头绪,只好去百度,谷歌。发现有不少都是问这个问题。但是没有一个是真正解决的文章(正因为这样,我才写而已)
- 寻找了一个下午+一个晚上,没有解决!
- 又回到起点,去看日志吧。不过我当时不是使用vim,而是使用了cat(不建议用在文本太大的话,你会后悔的。不过也是因为我这个愚蠢的动作给我解决bug的思路),
如果你一直启动不了,最后肯定是能看到这个异常的。
- 然后回去查看那个hadoop四个重要配置文件core-site.xml,hdfs-site.xml,yarn-site.xml,map-site.xml(slaves也算,只是压根没有配这个属性而已)
- 由于我是在start-dfs.sh才能调起DFSZKFailoverController
- 所以不关yarn-site.xml,map-site.xml的事
- 只好去看core-site.xml,hdfs-site.xml
- 分别查看,只有hdfs-site.xml存在这样的"sshfence",但是有排版格式(换行了)
- 我果断把排版格式去掉,变成
同步给其他集群,再启动start-dfs.sh
- 就出现了DFSZKFailoverController进程
- 总结:
- 他喵自己,为了懒去复制别人github的配置代码(https://github.com/xiongbeer/MyHadoopConf/tree/master/clustConf)。而导致自己浪费一天时间。这个不是重点。
- 重点在分析上,没有具体看日志具体多少行,就草率把日志关闭了。这是不可取的
原文:http://note.youdao.com/noteshare?id=05807db5f3367ad35da34c110a0bfa16&sub=3745E626E40844BEA1AE3A3ECD6AD058