前几天刚到新公司,结果在电脑关机后,重新启动hadoop的时候namenode没有启动成功,由于系统不是自己搭的,不敢贸然行动啊,查看错误的基本步骤哈哈大家都懂得,就是看hadoop运行日志了
我这里的报的错误是
java.io.FileNotFoundException: /home/hadoop/tmp/hadoopTmp/dfs/name/VERSION(权限不够)
后来看了一下version里面的id以后发现不一样,导致了namespace没启动,怎么会不一样呢,当看到这个错误的时候,首先想到的是是不是权限问题,系统在更新ID的时候没有
同步更新,后来把集群都用root用登录,然后再启动发现没问题都能够正常启动,知道问题所在了,就改权限吧(在这里我修改的是tmp的权限,你也可以直接修改hadoop用户的权限这样更省事),改完以后重新格式化系统,然后用hadoop用户登录启动,可以正常启动。
其中遇到不少问题,下面把日志的错误给分析一下吧,我也是刚接触懂得也不多,写出来跟大家一起讨论的,大牛们也别喷我,有什么地方说的不对的,请大家指正共同学习
java.io.IOException: File /home/hadoop/tmp/hadoopTmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1
这个错误是 当时在修改过程中,namenode启动了,datanode起不来了,所以会出现这个错误,找不到datanode。
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException:
Directory /home/hadoop/tmp/hadoopTmp/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.
Directory /home/hadoop/tmp/hadoopTmp/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.
这个错误是格式化的时候出现的,原因也是由于hadoop用户的权限不够,不能够删除已经存在的文件,所以出现这个错误,用root用户的话,是不会有这个错误的。