如果是一个新的HDFS集群,还要首先执行格式化命令“hdfs namenode -format”,紧接着启动本NameNode进程。
如果存在一个已经格式化过的NameNode,并且已经启动了。那么应该把该NameNode的数据同步到另一个没有格式化的NameNode。在未格式化过的NameNode上执行命令“hdfs namenode -bootstrapStandby”。
如果是把一个非HA集群转成HA集群,应该运行命令“hdfs –initializeSharedEdits”,这会初始化JournalNode中的数据。(未尝试过)
(2)hadoop/bin/hdfs zkfc –formatZK 进行格式化创建命名空间
(3)在配置了journalnode的节点启动,master01,slave01,slave02
在hadoop/sbin/hadoop-daemon.sh journalnode
(4)在主namenode节点执行格式化
./bin/hadoop namenode -format
启动主namenode
./hadoop/sbin/ hadoop-daemon.sh start namenode
(5)将主namenode格式化后的目录拷贝到从namenode节点上
./hadoop/bin/hdfs namenode –bootstrapStandby (注意:该命令在从namenode上执行,并且要保证第4步中的主namenode已经启动成功)
(6)在主namenode上执行 ./sbin/stop-dfs.sh
如果存在一个已经格式化过的NameNode,并且已经启动了。那么应该把该NameNode的数据同步到另一个没有格式化的NameNode。在未格式化过的NameNode上执行命令“hdfs namenode -bootstrapStandby”。
如果是把一个非HA集群转成HA集群,应该运行命令“hdfs –initializeSharedEdits”,这会初始化JournalNode中的数据。(未尝试过)
自己实验的步骤如下,请路过的同学指正:
(2)hadoop/bin/hdfs zkfc –formatZK 进行格式化创建命名空间
(3)在配置了journalnode的节点启动,master01,slave01,slave02
在hadoop/sbin/hadoop-daemon.sh journalnode
(4)在主namenode节点执行格式化
./bin/hadoop namenode -format
启动主namenode
./hadoop/sbin/ hadoop-daemon.sh start namenode
(5)将主namenode格式化后的目录拷贝到从namenode节点上
./hadoop/bin/hdfs namenode –bootstrapStandby (注意:该命令在从namenode上执行,并且要保证第4步中的主namenode已经启动成功)
(6)在主namenode上执行 ./sbin/stop-dfs.sh
(7)在从namenode上执行 ./sbin/start-dfs.sh
下次再重启该hdfs集群时,可以只运行 ./sbin/stop-dfs.sh 和 ./bin/start-dfs.sh了。