hdfs中的HA搭建:
步骤1:编辑hdfs-site.xml配置文件
在Hadoop配置目录中,编辑hdfs-site.xml配置文件,并添加以下配置项:
<property>
<name>dfs.nameservicesname>
<value>myclustervalue>
property>
<property>
<name>dfs.ha.namenodes.myclustername>
<value>nn1,nn2value>
property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1name>
<value>namenode1-hostname:8020value>
property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2name>
<value>namenode2-hostname:8020value>
property>
<property>
<name>dfs.namenode.http-address.mycluster.nn1name>
<value>namenode1-hostname:50070value>
property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2name>
<value>namenode2-hostname:50070value>
property>
<property>
<name>dfs.namenode.shared.edits.dirname>
<value>qjournal://journalnode1-hostname:8485;journalnode2-hostname:8485;journalnode3-hostname:8485/myclustervalue>
property>
步骤2:配置ZooKeeper
HDFS HA需要使用ZooKeeper来协调和管理HA状态。确保ZooKeeper集群已经正确配置和运行。
步骤3:配置JournalNode
JournalNode用于存储HDFS的编辑日志。在Hadoop配置目录中编辑hdfs-site.xml文件,并添加以下配置项:
<property>
<name>dfs.journalnode.edits.dirname>
<value>/hadoop/hdfs/journalvalue>
property>
dfs.journalnode.edits.dir:指定JournalNode存储编辑日志的目录。
步骤4:启动JournalNode
在JournalNode所在的节点上启动JournalNode服务。
步骤5:格式化ZooKeeper和HA状态
在Active NameNode节点上执行以下命令,格式化ZooKeeper和HA状态:
hdfs zkfc -formatZK -nonInteractive
步骤6:启动NameNode和ZKFC
在两个NameNode节点上启动NameNode服务和ZKFC服务。
步骤7:监控和测试
使用hdfs haadmin命令来检查HA集群的状态。
测试故障转移:模拟Active NameNode的故障,观察是否可以成功切换到Standby NameNode。