HDFS HA+Federation配置

两个nameservice,ns1和ns2,有两个高可用的NameNode。

1.      core-site.xml文件

<configuration>
     <property>
       <name>fs.defaultFS</name>
       <value>hdfs://ns1</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>
     <property>
        <name>ha.zookeeper.quorum</name>
        <value>hadoopa.highgo.com:2181</value>
     </property>
</configuration>

Core文件配置比较简单,也比较固定,有两个集群,可以将fs.defaultFS配置成ns1,也可以是ns2.联邦的集群在使用了ViewFs之后才能显现出优势。

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.nameservices</name>
            <value>ns1,ns2</value>
          </property>
          <property>
            <name>dfs.ha.namenodes.ns1</name>
            <value>nna,nnb</value>
          </property>
          <property>
                <name>dfs.ha.namenodes.ns2</name>
                <value>nng,nnh</value>
             </property>
             <property>
              <name>dfs.namenode.rpc-address.ns1.nna</name>
               <value>hadoopa.highgo.com:8020</value>
             </property>
             <property>
                <name>dfs.namenode.rpc-address.ns1.nnb</name>
                <value>hadoopb.highgo.com:8020</value>
             </property>
             <property>
                <name>dfs.namenode.http-address.ns1.nna</name>
                <value>hadoopa.highgo.com:50070</value>
            </property>
            <property>
             <name>dfs.namenode.http-address.ns1.nnb</name>
              <value>hadoopb.highgo.com:50070</value>
            </property>
            <property>
                  <name>dfs.namenode.shared.edits.dir.ns1</name><value>qjournal://hadoopa.highgo.com:8485;hadoopb.highgo.com:8485;hadoopc.highgo.com:8485/ns1</value>
            </property>
            <property>
                 <name>dfs.client.failover.proxy.provider.ns1</name><value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
            </property>
<property>
         <name>dfs.namenode.rpc-address.ns2.nng</name>
         <value>hadooph.highgo.com:8020</value>
</property>
<property>
        <name>dfs.namenode.rpc-address.ns2.nnh</name>
        <value>hadoopg.highgo.com:8020</value>
</property>
<property>
    <name>dfs.namenode.http-address.ns2.nng</name>
     <value>hadooph.highgo.com:50070</value>
</property>
<property>
      <name>dfs.namenode.http-address.ns2.nnh</name>
      <value>hadoopg.highgo.com:50070</value>
</property>
<!--
<property>
       <name>dfs.namenode.shared.edits.dir.ns2</name>    <value>qjournal://hadoopf.highgo.com:8485;hadoopg.highgo.com:8485;hadooph.highgo.com:8485/ns2</value>
</property>-->
<property>
   <name>dfs.client.failover.proxy.provider.ns2</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>
<property>
  <name>dfs.ha.automatic-failover.enabled.ns1</name>
   <value>true</value>
</property>
<property>
  <name>dfs.ha.automatic-failover.enabled.ns2</name>
   <value>true</value>
</property>
</configuration>

3.      格式化集群。需要在两个NameNode集群上分别格式化。启动整个JNs,在每一个集群上,在其中一个NameNode执行

hdfs namenode -format -clusterId mycluster

然后启动

hadoop-daemon.sh start namenode

在另一个NameNode上执行

hdfs namenode –bootstrapStandby

然后启动

hadoop-daemon.sh start namenode

在两个NameNode集群的任意NameNode上执行

hdfs zkfc –formatZK

在所有节点执行

hadoop-daemon.sh start zkfc

启动所有的DataNode

4.      此时可以用Hadoop shell进行一些操作了,不过此时操作的都是在fs.defaultFS配置中配置的ns1。之后介绍使用ViewFs的配置。这时才会显现出联邦的灵活性和其存在的意义。

你可能感兴趣的:(hadoop,hdfs,NameNode,格式化,文件系统)