这是个小问题,但如果新手接触的话可能会花费一番时间才能解决,甚至会不知所措。在此重点记录的还是解决问题的方式。
问题描述
在自己虚拟机上新安装了hadoop。在做单节点启动测试时发现namenode启动几秒钟后又挂了,datanode还是好好的。难不成是资源问题?敲入free -h、top查看了一下节点资源使用情况,没问题呀。尝试着又重启一下namenode,嗯,几秒后又挂了。
居然感到很兴奋;又找到写文章的理由了。。。
来记录一下查看分析日志解决问题的过程吧。
先贴上问题场景截图:
查看日志文件(注意打印日志文件的路径哦,在logs下有好多日志文件的),发现如下错误:对应配置的数据目录不存在
打开core-site配置文件发现如下配置,之前为了简便直接写了这个变量(本变量已经在profile中并添加到PATH路径记载,但并未export HADOOP_HOME)。
改成直接目录路径常量(或者export HADOOP_HOME),如下
还是出错。。。
查看日志信息:(不存在data目录,经查发现确实不存在name文件夹,那创建一个吧;其实在看到这个提示的时候就应该想想前面的format是否成功了)
还是启动失败,有如下错误:
得,之前粗心把配置写错导致format失败(format后查看输出信息也很重要哦),后面就都不得劲了。把data数据和log日志都删除(本机的测试环境,可以无所畏惧的删除),重新format吧。
再次启动,问题解决
windows登录主机50070端口,(tip:在此已经配置windows DNS,若未配置可以见这篇博客:windows下通过hosts文件配置DNS,或直接输入ip登录。此外若在虚拟机中发现50070/9000端口已启动监听,但在windows打开显示404错误,此时检查一下虚拟机防火墙,确保防火墙关闭)
总结:
问题比较简单,但这里写的有点啰嗦,关键在于解决问题的方式。通过这次问题也让自己反思到了初学时接触类似问题的解决方法,用那时的方式可能就是先上网搜一搜,如果运气好很快就能解决,但若运气不好就得找半天了,如此花费了不必要的时间,关键还没有学到如何去解决问题。此外,节点启动失败问题很多,注意查看日志文件真的很重要;个人认为这是依靠个人最快捷的问题解决方式。可能今天的解决方法(渔)在半年后的自己看来还是比较low的,但没关系,享受的就是这种前进的感觉。