1.复制一份配置文件做HA (etc/hadoop)
cp hadoop HA_hadoop
2.修改配置文件hdfs-site.xml
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>master:9000</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>slave1:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>slave1:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://master:8485;slave1:8485;slave2:8485/mycluster</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hyxy/.ssh/id_rsa</value>
</property>
3.修改配置文件hdfs-site
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<--添加!-->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/hyxy/soft/tmp/journalnode</value>
</property>
4.发送到其他机器
scp -r /home/hyxy/soft/hadoop/etc/HA_hadoop hyxy@slave1:~/soft/hadoop/etc
scp -r /home/hyxy/soft/hadoop/etc/HA_hadoop hyxy@slave2:~/soft/hadoop/etc
5.改软连接 (所有机器都改)
Ln -s HA_hadoop hadoop
6.启动所有机器上的journalnode守护进程
hadoop-daemon.sh start journalnode
(可忽略)
(一旦启动了JournalNodes,就必须首先同步两个HA NameNodes的磁盘元数据。
如果要设置新的HDFS集群,则应首先在其中一个NameNode上运行format命令(hdfs namenode -format)。
如果您已经格式化了NameNode,或者正在将启用了HA的群集转换为启用HA,
则现在应该通过运行命令“ hdfs namenode bootstrapStandby ”
将NameNode元数据目录的内容复制到另一个未格式化的NameNode上。 在未格式化的NameNode上。
运行此命令还将确保JournalNodes(由dfs.namenode.shared.edits.dir配置)包含足够的编辑事务,
以便能够启动两个NameNode。
如果要将非HA NameNode转换为HA,则应运行命令“ hdfs namenode -initializeSharedEdits ”,
该命令将使用来自本地NameNode编辑目录的编辑数据初始化JournalNodes。)
7.启动原来的namenode守护进程
master-------》hadoop-daemon.sh start namenode
8.在另一个namenode上复制原来的数据过来
slave1-------》hdfs namenode -bootstrapStandby
9.关闭namenode进程,初始化日志文件
hadoop-daemon.sh stop namenode
hdfs namenode -initializeSharedEdits
10.正常启动集群
start-dfs.sh
11.验证集群
把其中一个namenode切换成活跃的
hdfs haadmin -transitionToActive nn1
上传文件
搭建了好久,过一两天把之前学的东西总结一下吧