-
准备硬件:需要两台机器充当Active和Standby NameNode,以及一台机器充当Shared Storage(推荐配置,但不是必需的)。
-
配置Shared Storage:如果使用共享存储,需要在共享存储服务器上创建一个目录,并授予访问权限。然后,在Active和Standby NameNode上分别创建Mount目录,并挂载该共享存储目录。
-
编辑核心配置文件:在每台NameNode的/etc/hadoop/conf目录下,找到core-site.xml文件,添加以下配置:
-
<property> <name>fs.defaultFS</name> <value>hdfs://ActiveNameNode:8020</value> </property>
-
编辑HDFS配置文件:在每台NameNode的/etc/hadoop/conf目录下,找到hdfs-site.xml文件,添加以下配置:
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>ActiveName Node,StandbyNameNode</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.ActiveNameNode</name>
<value>ActiveNameNode:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.StandbyNameNode</name>
<value>StandbyNameNode:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.ActiveNameNode</name>
<value>ActiveNameNode:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.StandbyNameNode</name>
<value>StandbyNameNode:50070</value>
</property>
<property>
<name>dfs.namenode.shared.dir</name>
<value>/path/to/shared/storage</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/path/to/journal/node/edits/dir</value>
</property>
<property>
<name>dfs.journalnode.http-address</name>
<value>JournalNode:8480</value>
</property>
<property>
<name>dfs.journalnode.https-address</name>
<value>JournalNode:8481</value>
</property>
<property>
<name>dfs.journalnode.rpc-address</name>
<value>JournalNode:8485</value>
</property>
7、创建JournalNode:在执行此步骤之前,请确保已经在多播或共享存储设置中配置了JournalNode。在上述配置文件中添加以下配置:
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/path/to/journal/node/edits/dir</value>
</property>
<property>
<name>dfs.journalnode.http-address</name>
<value>JournalNode:8480</value>
</property>
<property>
<name>dfs.journalnode.https-address</name>
<value>JournalNode:8481</value>
</property>
<property>
<name>dfs.journalnode.rpc-address</name>
<value>JournalNode:8485</value>
</property>
8、配置高可用性工具:在/etc/hadoop/conf目录下创建一个名为hdfs-site.xml.tmp的文件,并将以下配置复制到其中
<property>
<name>dfs.client.block.write.replace-datanode-on-failure.policy</name>
<value>NEVER</value>
</property>
9、启动HDFS:启动HDFS时,需要按照以下顺序启动Active NameNode、Standby NameNode和JournalNodes。可以使用以下命令启动HDFS:
$HADOOP_HOME/bin/hdfs --daemon start namenode
$HADOOP_HOME/bin/hdfs --daemon start namenode -ns3
$HADOOP_HOME/bin/hdfs --daemon start journalnode
$HADOOP_HOME/bin/hdfs --daemon start datanode
$HADOOP_HOME/bin/hdfs --daemon start datanode -ns3
$HADOOP_HOME/bin/hdfs --daemon start secondarynamenode
10、验证高可用性:一旦HDFS启动并运行,您应该能够在Active和Standby NameNode上执行读/写操作。如果Active NameNode发生故障,Standby NameNode将自动接管并继续提供服务