1. 程式人生 > >HDFS(NameNode)的聯盟:Federation

HDFS(NameNode)的聯盟:Federation

def ini slave ces miss namenode 格式化 mat eno

HDFS(NameNode)的聯盟:Federation,配置HDFS聯盟,多個NameNode節點同時存活,根據代理配置的路由規則處理客戶端不同的請求,實現負載均衡,同時也可以緩存更多的元信息,它與HA的區別在於,聯盟是多個NameNode都是active,可以存儲更多的元信息。

一、聯盟與HA的聯系和區別

1、也有多個NameNode
2、跟HA的區別:這些NameNode都是active狀態
3、作用:
(1)緩存更多的元信息
(2)實現負載均衡

二、搭建HDFS的聯盟

(1)規劃
NameNode:bigdata112 bigdata113
DataNode:bigdata114 bigdata115

(2)在bigdata112上配置安裝hadoop
(2.1)解壓
(2.2)配置hadoop-env.sh中的java環境
export JAVA_HOME=/training/jdk1.8.0_144
(2.3)配置core-site.xml

            <!-- 指定hadoop臨時目錄 -->
            <property>
                <name>hadoop.tmp.dir</name>
                <value>/training/hadoop-2.7.3/tmp</value>
            </property>

(2.4)配置mapred-site.xml

    <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>

(2.5)配置yarn-site.xml

<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata12</value>

</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

(2.6)配置slaves

        bigdata14
        bigdata15

(2.7)配置hdfs-site.xml

 <!--指定hdfs的nameservice,聯盟是ns1,ns2-->
                <property>
                        <name>dfs.nameservices</name>
                        <value>ns1,ns2</value>
                </property>

    <!-- ns1的RPC通信地址 -->
                <property>
                        <name>dfs.namenode.rpc-address.ns1</name>
                        <value>bigdata112:9000</value>
                </property>
                <!-- ns1的http通信地址 -->
                <property>
                        <name>dfs.namenode.http-address.ns1</name>
                        <value>bigdata112:50070</value>
                </property>
          <property>
                        <name>dfs.namenode.secondaryhttp-address.ns1</name>
                        <value>bigdata112:50090</value>
                </property>

                <!-- ns2的RPC通信地址 -->
                <property>
                        <name>dfs.namenode.rpc-address.ns2</name>
                        <value>bigdata113:9000</value>
                </property>
                <!-- ns2的http通信地址 -->
                <property>
                        <name>dfs.namenode.http-address.ns2</name>
                        <value>bigdata113:50070</value>
                </property>
          <property>
                        <name>dfs.namenode.secondaryhttp-address.ns2</name>
                        <value>bigdata113:50090</value>
                </property>
    <!--副本-->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>

    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>

    <!--權限-->
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>

(2.8)配置core-site.xml,增加路由規則

       <property>
            <name>fs.viewfs.mounttable.xdl1.homedir</name>
            <value>/home</value>
        </property>

        <property>
            <name>fs.viewfs.mounttable.xdl1.link./movies</name>
            <value>hdfs://bigdata114:9000/movies</value>
        </property>

        <property>
            <name>fs.viewfs.mounttable.xdl1.link./mp3</name>
            <value>hdfs://bigdata115:9000/mp3</value>
        </property>

        <property>
            <name>fs.default.name</name>
            <value>viewfs://xdl1</value>
        </property>

註意:如果路由規則太多,可以單獨創建一個xml文件(mounTable.xml)
(3)將112上的hadoop拷貝到113、114、115上

(4)對NameNode進行格式化

在112和113兩個namenode節點上格式化
hdfs namenode -format -clusterId xdl1

(5)啟動
在112上啟動Hadoop
start-all.sh
(6)在DataNode節點上創建響應的目錄

HDFS(NameNode)的聯盟:Federation