请尊重原创,转载请注明:天然呆的技术博客
环境:aparche hadoop-2.2.0
启动ZK:
bin/zkServer.sh start结果:在zookeeper的data目录下生成version-2文件夹,和zookeeper_server.pid文件
======================================================================================
步骤一:初始化zookeeper,在Namenode()上输入:
bin/hdfs zkfc -formatZK
#Successfully created /hadoop-ha/ns1 in ZK.#
结果:在journal目录下生成ns1目录和同时在ns1下生成 in_use.lock文件
------------------------------------------------------------------
步骤二:启动所有QJM
在所有QJM机器上:
进入Hadoop目录:
bin/hdfs journalnode
------------------------------
步骤五:启动 NN1 和 NN2:
首先格式化namenode:
bin/hdfs namenode –format
结果:若第一次启动,在(namenode的tmp/dfs/name目录下生成current目录)
若第二次启动,在(namenode的tmp/dfs/name目录下生成current目录,同时在各个journalnode下的 journal/ns1下生成current目录,同时更新in_use.lock文件)
首先格式化namenode:
bin/hdfs namenode –format
结果:若第一次启动,在(namenode的tmp/dfs/name目录下生成current目录)
若第二次启动,在(namenode的tmp/dfs/name目录下生成current目录,同时在各个journalnode下的 journal/ns1下生成current目录,同时更新in_use.lock文件)
启动NN1:
sbin/hadoop-daemon.sh start namenode
---------------------------------------------
在NN2机器上:
拉取共享文件:
bin/hdfs namenode -bootstrapStandby [-force | -nonInteractive]
sbin/hadoop-daemon.sh start namenode
---------------------------------------------
在NN2机器上:
拉取共享文件:
bin/hdfs namenode -bootstrapStandby [-force | -nonInteractive]
结果:在(tmp/dfs/name目录下生成current目录)
启动NN2:
启动NN2:
sbin/hadoop-daemon.sh start namenode
--------------------------------------------------------
--------------------------------------------------------
--------------------------------------------------------
步骤七:在各个namenode机器上启动zookeeper:
sbin/hadoop-daemon.sh start zkfc
结果:在当前节点上多了一个进程:DFSZKFailoverController
步骤七:在各个namenode机器上启动zookeeper:
sbin/hadoop-daemon.sh start zkfc
结果:在当前节点上多了一个进程:DFSZKFailoverController
------------------------------------------------------------------------------------------------
步骤六:在NN1上执行:
sbin/hadoop-daemons.sh start datanode
------------------------------------------------------------------------------------------------
步骤六:在NN1上执行:
sbin/hadoop-daemons.sh start datanode
------------------------------------------------------------------------------------------------
启动YARN,在NN1上
sbin/start-yarn.sh
==========================================================================
在所有机器上停止Journalnode
--------------------------------------------------
人工切换
NN1 和 NN2 启动后,都处于 Standby 状态,此时均不能对外提供服务,在 NN1 节点上输入
以下命令将它切换为 active:
hdfs haadmin -failover --forcefence --forceactive <serviceId> <namenodeId>
其中,serviceId 为“dfs.nameservices”配置的命名服务,namenodeId 为 namenode ID,在此,
可以是 NN1:
bin/hdfs haadmin -failover --forcefence --forceactive ns1 nn1
==========================================================================
在所有机器上停止Journalnode
--------------------------------------------------
人工切换
NN1 和 NN2 启动后,都处于 Standby 状态,此时均不能对外提供服务,在 NN1 节点上输入
以下命令将它切换为 active:
hdfs haadmin -failover --forcefence --forceactive <serviceId> <namenodeId>
其中,serviceId 为“dfs.nameservices”配置的命名服务,namenodeId 为 namenode ID,在此,
可以是 NN1:
bin/hdfs haadmin -failover --forcefence --forceactive ns1 nn1
步骤三:格式化所有机器的QJM
需要时执行:初始化 JournalNode
在 NN1 上,执行以下命令
可以使用参数-force 或者 –nonInteractive 跳过交互式过程,直接强制格式化。
bin/hdfs namenode -initializeSharedEdits [-force | -nonInteractive]
需要时执行:初始化 JournalNode
在 NN1 上,执行以下命令
可以使用参数-force 或者 –nonInteractive 跳过交互式过程,直接强制格式化。
bin/hdfs namenode -initializeSharedEdits [-force | -nonInteractive]