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 (兩臺都需要啟動)