1. 程式人生 > >hadoop HA搭建

hadoop HA搭建

配置件修改,目錄在<hadoop_home>/etc/hadoop/

一.配置

1.core-site.xml
<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://bonree</value>
        </property>
        <property> 
                <name>io.file.buffer.size</name> 
                <value>131072</value> 
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/data/br/base/hadoop/data/tmp</value>
        </property>
        <property>
                <name>ha.zookeeper.quorum</name>
                <value>mini1:2181,mini2:2181,mini3:2181</value>
        </property>
</configuration>

2.hdfs-site.xml

 <configuration>
        <property>
                <name>dfs.blocksize</name>
                <value>67108864</value>
                <!--塊大小-->
        </property>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/data/br/base/hadoop/data/namenode</value>
                <!--NameNode檔案儲存路徑-->
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/data/br/base/hadoop/data/datanode</value>
                <!--DataNode儲存路徑地址-->
        </property>
        <property>
                <name>dfs.qjournal.write-txns.timeout.ms</name>
                <value>60000</value>
                <!--Journal超時時間-->
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
                <!--副本hdfs備份數-->
        </property>
        <property>
                <name>dfs.webhdfs.enabled</name>
                <value>true</value>
        </property>
        <property>
                <name>dfs.permissions</name>
                <value>false</value>
                <!--是否開啟許可權校驗-->
        </property>
        <property>
                <name>dfs.nameservices</name>
                <value>bonree</value>
                <!--叢集名稱,用於主備配置-->
        </property>
        <property>
                <name>dfs.ha.namenodes.bonree</name>
                <!--配置ha叢集-->
                <value>mini1,mini2</value>
                <!--配置ha中的所有主備節點-->
        </property>
        <property>
                <name>dfs.namenode.rpc-address.bonree.mini1</name>
                <value>mini1:9000</value>
                <!--配置主節點Rpc地址-->
        </property>
        <!--<property> <name>dfs.namenode.http-address.bonree.mini1</name> <value>mini1:50070</value> </property>-->
        <!--配置後外網無法訪問,視情況而定-->
        <property>
                <name>dfs.namenode.rpc-address.bonree.mini2</name>
                <value>mini2:9000</value>
                <!--配置備節點,檢視情況而定-->
        </property>
        <!--<property> <name>dfs.namenode.http-address.bonree.mini2</name> <value>mini2:50070</value> </property>-->
        <property>
                <name>dfs.namenode.shared.edits.dir</name>
                <value>qjournal://mini1:8485;mini2:8485;mini3:8485/bonree</value>
                <!--配置Journal地址,需要三臺伺服器,最後/bonree為叢集名稱-->
        </property>
        <property>
                <name>dfs.ha.automatic-failover.enabled.bonree</name>
                <value>true</value>
                <!--是都自動切換NameNode,是-->
        </property>
        <property>
                <name>dfs.client.failover.proxy.provider.bonree</name>
                <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
        </property>
        <property>
                <name>dfs.journalnode.edits.dir</name>
                <value>/data/br/base/hadoop/data/journal</value>
                <!--journalnode儲存位置-->
        </property>
        <property>
                <name>dfs.ha.fencing.methods</name>
                <value>sshfence</value>
        </property>
        <property>
                <name>dfs.ha.fencing.ssh.private-key-files</name>
                <value>/root/.ssh/id_rsa</value>
        </property>
        <property>
                <name>dfs.datanode.max.transfer.threads</name>
                <value>8192</value>
                <!--HDFS開啟的最大檔案數-->
        </property>
        <property>
                <name>dfs.datanode.du.reserved</name>
                <value>1073741824</value>
                <!--DataNode預留空間10G-->
        </property>
        <property>
                <name>dfs.balance.bandwidthPerSec</name>
                <value>2621440</value>
                <!--HDFS網路io限制,25M/s-->
        </property>
        <property>
                <name>dfs.ha.automatic-failover.enabled</name>
                <value>true</value>
        </property>
</configuration>

其他配置遵循單節點配置

二.啟動

1.啟動zk叢集                                           .....

2.格式化zk叢集,用於搶佔主節點                                                 hdfs  zkfc  -formatZK 

3.啟動journalnode,用於namenode元資料的同步                        hadoop-daemons.sh start journalnode

4.格式化叢集                                                                               hdfs namenode -format -clusterId bonree

5.主節點啟動NameNode                                                             hadoop-daemon.sh  start  namenode

6.複製格式化的元資料資訊到另一臺主節點上                             hdfs namenode -bootstrapStandby  (賦值貼上nameNode也行)

7.啟動所有資料節點                                                                    hadoop-daemons.sh start datanode

8.啟動選舉機制                                                                           hadoop-daemon.sh start zkfc    (兩臺都需要啟動)