0
点赞
收藏
分享

微信扫一扫

HDFS HA全新安装配置


1.core-site.xml文件

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/hihadoop/hadoop/jns</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/tmp</value>
</property>
</configuration>

2.hdfs-site.xml文件

<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/hadoop/dfs/data/data1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoopb.highgo.com:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>hadoopb.highgo.com:50091</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nna,nnb</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nna</name>
<value>hadoopa.highgo.com:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nnb</name>
<value>hadoopb.highgo.com:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nna</name>
<value>hadoopa.highgo.com:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nnb</name>
<value>hadoopb.highgo.com:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name> <value>qjournal://hadoopa.highgo.com:8485;hadoopb.highgo.com:8485;hadoopc.highgo.com: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/hihadoop/.ssh/id_rsa</value>
</property>
</configuration>

2.启动JNs守护进程,在每一台JournalNode上运行下边的命令,不启动JNs,无法格式化NameNode。

hadoop-daemon.sh start journalnode

3.格式化NameNode,在a上执行下面的命令格式化a,两个NameNode格式化的顺序无所谓。

hdfs namenode -format

启动a上的NameNode,在b上运行下面的命令格式化

hdfs namenode -bootstrapStandby

格式化之后,b上的NameNode就可以启动了。
此时可以用50070端口分别查看两个NameNode的状态了。两个都是Standby状态。需要手工将其中一个转换成Active状态。
用下面这个命令可以将其中一个转为Active状态。

hdfs haadmin -transitionToActive nna

注意:
1>hdfs namenode -format命令不会格式化两个NameNode,后格式化的NameNode用hdfs namenode -bootstrapStandby命令格式化。
2>格式化第二个NameNode时,第一个NameNode必须启动,需要通过JNs传输数据,JNs也必须都启动。
4.启动所有的DataNode,集群就可以正常使用了。
注意:在停止集群的所有HDFS相关进程,然后用start-dfs.sh命令重新启动,发现新启动的集群的两个NameNode也都是Standby状态的,需要手工切换一个到Active。
如果同时配置了自动故障转移的话,启动时就会有一个NameNode是Active的,文档上说是会选择先启动的NameNode作为Active,具体原理再研究。

举报

相关推荐

0 条评论