大家知道Hadoop不能直接进行多次格式化,多次格式化($ hdfs namenode -format)会造成没有datanode,因为每次格式化操作会重新创建一个namenodeId,而dfs.data.dir参数配置的目录中包含的是上次格式化创建的id,和dfs.name.dir参数配置的目录中的id不一致。那么应该怎样正确地重新格式化我们的Hadoop呢?
以下是正确重新格式化的方法:
a. 停止Hadoop所有进程
$ stop-all.sh
b.删除$HADOOP_HOME目录下的logs和tmp目录(关键步骤)
$ cd $HADOOP_HOME
$ ls
bin include libexec logs README.txt share
etc lib LICENSE.txt NOTICE.txt sbin tmp
$ rm -rf logs tmp
c.重新格式化文件系统
$ hdfs namenode -format
d.启动Hadoop进程
$ start-all.sh
e.确认Hadoop进程是否已开启
$ jps
7366 NameNode
8278 Jps
7640 SecondaryNameNode
7849 ResourceManager
7482 DataNode
7967 NodeManager