hadoop主节点切换_hadoop2.0 HA的主备自动切换
在《hadoop2.0 QJM方式的HA的配置》一文中介紹了HA的配置,是通過手工進(jìn)行主備切換的。本文在這基礎(chǔ)上,繼續(xù)介紹HA的主備自動(dòng)切換(automatic failover)的配置。自動(dòng)切換是通過配置zookeeper來實(shí)現(xiàn)的,關(guān)于zookeeper的安裝和配置,在這里不做介紹了,大家可以參考網(wǎng)上的資料。
1 準(zhǔn)備
假定已經(jīng)有一個(gè)zookeeper的集群,3臺(tái)機(jī)器如下:zookeeper1
zookeeper2
zookeeper3
兩個(gè)namenode節(jié)點(diǎn)如下:namenode1
namenode2
2 配置
只涉及到core-site.xml和hdfs-site.xml兩個(gè)配置文件,其他配置可以文件參考《hadoop2.0的安裝和基本配置》一文。
2.1 core-site.xml
需要增加ha.zookeeper.quorum參數(shù),加上zookeeper的服務(wù)地址
完整配置如下:
fs.defaultFS
hdfs://mycluster
hadoop.tmp.dir
/home/tmp/hadoop2.0
ha.zookeeper.quorum
zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
2.2 hdfs-site.xml
dfs.replication
1
dfs.namenode.name.dir
/home/dfs/name
dfs.datanode.data.dir
/home/dfs/data
dfs.permissions
false
dfs.nameservices
mycluster
dfs.ha.namenodes.mycluster
nn1,nn2
dfs.namenode.rpc-address.mycluster.nn1
namenode1:8020
dfs.namenode.rpc-address.mycluster.nn2
namenode2:8020
dfs.namenode.http-address.mycluster.nn1
namenode1:50070
dfs.namenode.http-address.mycluster.nn2
namenode2:50070
dfs.namenode.shared.edits.dir
qjournal://journalnode1:8485;journalnode2:8485;journalnode3:8485/mycluster
dfs.journalnode.edits.dir
/home/dfs/journal
dfs.client.failover.proxy.provider.mycluster
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.ha.fencing.methods
shell(/bin/true)
dfs.ha.automatic-failover.enabled
true
dfs.ha.automatic-failover.enabled
需要設(shè)置為true,啟動(dòng)自動(dòng)切換。dfs.ha.fencing.methods
這里我們把fencing方法設(shè)置為shell,一是為了方便測試,二是采用QJM方式的HA本身就有fencing功能,不需要用這個(gè)參數(shù)中的fencing功能,詳解請參考《hadoop2.0 QJM方式的HA的配置》一文。你用sshfence的方法也是可以的,不過要注意ssh連接的問題和一些權(quán)限的問題。
3 在zookeeper中初始化$HADOOP_HOME/bin/hdfs zkfc -formatZK
運(yùn)行這個(gè)命令后,會(huì)在zookeeper上創(chuàng)建一個(gè)/hadoop-ha/mycluster/的znode,用來存放automatic failover的數(shù)據(jù)。
4 啟動(dòng)zkfc(zookeeper failover controller)
需要在namenode1和namenode2上都啟動(dòng)zkfc daemon進(jìn)程。$HADOOP_HOME/sbin/hadoop-daemon.sh start zkfc
5 啟動(dòng)HDFS
在兩個(gè)namenode都啟動(dòng)之后,會(huì)發(fā)現(xiàn),其中一個(gè)namenode會(huì)自動(dòng)切換成active狀態(tài),不需要手工切換。
6 測試
現(xiàn)在可以享受我們的勝利成果了。我們把a(bǔ)ctive namenode停掉后,會(huì)看到standby namenode自動(dòng)切換成active狀態(tài)了。
7 QJM方式HA automatic failover的結(jié)構(gòu)圖
QJM方式HA的結(jié)構(gòu)涉及到active namenode,standby namenode,journalnode,datanode,zookeeper,zkfc,client,這里通過一個(gè)圖描述他們之間的關(guān)系。
8 實(shí)戰(zhàn)tipszookeeper可以在hadoop集群中選幾臺(tái)機(jī)器同時(shí)作為zookeeper節(jié)點(diǎn),給HA私用。
在實(shí)踐中建議采用手工切換的方式,這樣更可靠,也方便查找問題。
參考資料
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的hadoop主节点切换_hadoop2.0 HA的主备自动切换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网吧服务器RAID 0+1硬盘阵列组建图
- 下一篇: 广东2021高考成绩位次查询,广东一分一