问题就出在tmp文件,默认的tmp文件每次重新开机会被清空,与此同时namenode的格式化信息就会丢失
于是我们得重新配置一个tmp文件目录
首先在home目录下建立一个hadoop_tmp目录
sudo mkdir ~/hadoop_tmp
然后修改hadoop/conf目录里面的core-site.xml文件,加入以下节点:
<property>
<name>hadoop.tmp.dir</name>
<value>/home/chjzh/hadoop_tmp</value>
<description>A base for other temporary directories.</description>
</property>
注意:我的用户是chjzh所以目录是/home/chjzh/hadoop_tmp
特别注意在执行namenode时候要保证对应namenode上的zookeeperJournalNode都得启动
OK了,重新格式化Namenode
hadoop namenode -format
然后启动hadoop
start-all.sh
执行下JPS命令就可以看到NameNode了
第二种解决办法将原来的tmp文件夹删除之后,再重新创建,
然后格式化 hadoop namenode -format
特别注意在执行namenode时候要保证对应namenode上的zookeeperJournalNode都得启动
解决方法:先用./zkServer.sh start 启动各个zookeeper,再用./hadoop-daemon.sh start journalnode启动各个NodeName上的JournalNode进程。然后再进行格式化即可。