您的位置:首页 > 大数据 > Hadoop

HDFS HA全新安装配置

2014-08-12 15:29 393 查看
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,具体原理再研究。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: