HA_配置

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/qq_41922058/article/details/81740032

規劃

Ssh信任配置方式Ssh信任配置方式

Ssh-keygen -t rsa -P “12345678”
Ssh-copy-id

Copy zookeeper以及hadoop文件

創建zookeeper/datas/myid文件
啓動zookeeper 查看狀態
zkServer.sh status //leader follower

配置hadoop

Core-site.xml

<configuration>
           <property>
                <name>fs.defaultFS</name>
                <!--配置ns = nameservice,一個nameservice下,最多可以有兩個namenode-->
                <value>hdfs://ns</value>
            </property>
            <property>
                <name>ha.zookeeper.quorum</name>
                <value>hadoop85:2181,hadoop86:2181,hadoop87:2181</value>
            </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/app/hadoop/tmp</value>
        </property>
</configuration>

Hdfs-site.xml

<configuration>
        <!--配置nameservice與hdfs://ns保持相同,可以配置多個,ns,ns2-->
        <property>
                <name>dfs.nameservices</name>
                <value>ns</value>
        </property>
        <!--配置ns1下同有幾個namenode,一個nameservice下最多只能有兩個namenode-->
        <property>
                <name>dfs.ha.namenodes.ns</name>
                <value>nn1,nn2</value>
        </property>
        <!--配置每一個namenode的信息之rpc-->
        <property>
                <name>dfs.namenode.rpc-address.ns.nn1</name>
                <value>hadoop81:8020</value>
        </property>
        <property>
                <name>dfs.namenode.rpc-address.ns.nn2</name>
                <value>hadoop82:8020</value>
        </property>
        <!--配置每一個namenode之http.可以省略-->
        <property>
                <name>dfs.namenode.http-address.ns.nn1</name>
                <value>hadoop81:50070</value>
        </property>
        <property>
                <name>dfs.namenode.http-address.ns.nn2</name>
                <value>hadoop82:50070</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/app/hadoop/dfs/name,/app/hadoop/dfs2/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/app/hadoop/dfs/datas,/app/hadoop/dfs2/datas</value>
        </property>
        <!--配置journalnode保存edits的目錄,最後的ns1不一定要與nameservice的名稱一樣
             因爲,它會在${dfs.journalnode.edits.dir}/ns目錄下-->
        <property>
                <name>dfs.namenode.shared.edits.dir</name>
                <value>qjournal://hadoop85:8485;hadoop86:8485;hadoop87:8485/ns</value>
        </property>
        <!--指定journal日誌保存的目錄,這個目錄只能是一個,不能是多個只能是一個目錄-->
        <property>
                <name>dfs.journalnode.edits.dir</name>
                <value>/app/hadoop/journal</value>
        </property>
        <!--有了上面的目錄,還需要爲每一個namenode配置日誌目錄嗎,以下兩個目錄下保存的數據完全一樣-->
        <property>
                <name>dfs.namenode.edits.dir</name>
                <value>/app/hadoop/dfs/edits,/app/hadoop/dfs2/edits</value>
        </property>
        <!--開啓namenode失敗自動切換-->
        <property>
                <name>dfs.ha.automatic-failover.enabled</name>
                <value>true</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.ha.fencing.methods</name>
                <value>
                        sshfence
                        shell(/bin/true)
                </value>
        </property>
        <!--配置切換時免密碼登錄的key-->
        <property>
                <name>dfs.ha.fencing.ssh.private-key-files</name>
                <value>/home/jingxi/.ssh/id_rsa</value>
        </property>
</configuration>

Yarn-site.xml

<configuration>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop81</value>
        </property>
        <property>
                <name>yarn.nodemanager.local-dirs</name>
                <value>/app/hadoop/nm-local-dir</value>
        </property>
         <!--開啓高可靠-->
        <property>
                <name>yarn.resourcemanager.ha.enabled</name>
                <value>true</value>
        </property>
        <!--配置一個集羣的名稱,雖然不用,但還是要配置一下-->
        <property>
                <name>yarn.resourcemanager.cluster-id</name>
                <value>hadoop</value>
        </property>
        <!--配置resourcemanager兩個-->
        <property>
                <name>yarn.resourcemanager.ha.rm-ids</name>
                <value>rm1,rm2</value>
        </property>
         <!--指定第一個resourcemanager的地址-->
        <property>
                <name>yarn.resourcemanager.hostname.rm1</name>
                <value>hadoop83</value>
        </property>
         <!--配置第二個resourcemanager的地址-->
        <property>
                <name>yarn.resourcemanager.hostname.rm2</name>
                <value>hadoop84</value>
        </property>
        <!--配置zookeeper的地址-->
        <property>
                <name>yarn.resourcemanager.zk-address</name>
                <value>hadoop85:2181,hadoop86:2181,hadoop87:2181</value>
        </property>
        <!-- 配置Mapper數據本地溢出緩存目錄-->
        <property>
                <name>yarn.nodemanager.local-dirs</name>
                <value>/app/hadoop/nm-local-dirs/1,/app/hadoop/nm-local-dirs/2</value>
        </property>
</configuration>

Slaves

hadoop81
hadoop82
hadoop83
hadoop84
hadoop85
hadoop86
hadoop87

啓動journalnode

在85 86 87 機器上啓動

$ hadoop-daemon.sh start journalnode

格式化namenode

$ hdfs namenode -format

共享edits目錄

$ scp -r /app/hadoop/ hadoop82:/app/

格式化zkfc

Hdfs zkfc -formatZK

啓動hdfs

Start-dfs.sh

啓動yarn

到83 84 機器啓動yarn

Start-yarn.sh

使用jps命令查看各節點啓動是否與規劃一致

Jps

使用http管理

http://hadoop83:8088/
http://hadoop82:50070/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章