在经过多次练习后,对操作流程也很熟悉,先配置5个文件,关闭防火墙、selinux,然后namenode格式化,成功后起节点
但架不住皮啊,后果就是错误极难发现
这个就我昨儿碰到的,反复查看没辙,文件配置没毛病,防火墙和selinux也关着呢 一问老师,分分钟解决了!
找不到问题,那就查看日志呗 直接切入根源所在,按着日志说的去查,搞定
从这我体会到了日志的重要性,去网上也搜了一些查看日志的命令:
Tail
1、tail -f filename
说明:监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。
2、tail -n 20 filename
说明:显示filename最后20行。
3、tail -r -n 10 filename
说明:逆序显示filename最后10行。
head 仅仅显示前面几行
head -n 10 test.log 查询日志文件中的头10行日志;
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
grep主要是跟正则连用的
grep详细的使用方法见此链接:
http://man.linuxde.net/grep
更多的查看日志指令,伙伴们自己去探索吧
2.第二个问题,相信很多伙伴也是碰到过的,就是执行了多次namenode format,后果是怎样的呢?
会在你起节点的时候,体现出来;
start-dfs.sh 发现要么namenode 没有,要么datanode没有 二者不可兼得了。。。
这里会询问你是否再次格式化文件系统,选择Y
注意到上方图中的第一行和第三行没,那个目录(/home/hadoop/opt/tmp/dfs), ll 查看发现dfs目录下有name、data两个目录
这里我进入的是dfs/data/current/ ,查看了VERSION文件
原因是一样的,每一次format主节点namenode,
dfs/name/current
目录下的VERSION文件会产生新的clusterID、namespaceID。但是如果子节点的
dfs/name/current
仍存在,hadoop格式化时就不会重建该目录,因此形成子节点的clusterID、namespaceID与主节点(即namenode节点)的clusterID、namespaceID不一致。最终导致hadoop启动失败。
我们只需要将name、data目录下面的文件全部删除,rm -rf data/current/ ,格式完之后重启reboot,再查看发现两个目录下是空的
重新执行一次namenode format
没毛病,两个都起了!
就算是重连虚拟机 xshell,格式化只需要执行一次