hadoop2.x HA環(huán)境搭建

需要角色進程:nameNode(2個,一個active,一個standby);dataNode(3個),zookeeper(3個),zkfc(健康檢查和自動故障轉(zhuǎn)移需要的進程,2個,和兩個nameNode在一起),JNN(3個,日志節(jié)點,用來同步兩個nameNode)。

1.前置準備:java環(huán)境,hadoop下載,環(huán)境變量配置,nameNode節(jié)點向其他節(jié)點的免密鑰登錄(兩個nameNode節(jié)點需互相免密鑰登錄,從namenode節(jié)點最好也向其余節(jié)點免密鑰登錄,這樣也可以在從節(jié)點執(zhí)行start-dfs.sh等命令),詳見hadoop1.x偽分布式環(huán)境搭建。

2.配置hdfs-site.xml(之前配置的secondaryNamenode就不需要了):

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

<property>

? <name>dfs.nameservices</name>

? <value>mycluster</value>

</property>

<property>

? <name>dfs.ha.namenodes.mycluster</name>

? <value>n1,n2</value>

</property>

<property>

? <name>dfs.namenode.rpc-address.mycluster.n1</name>

? <value>wang-108:8020</value>

</property>

<property>

? <name>dfs.namenode.rpc-address.mycluster.n2</name>

? <value>wang-109:8020</value>

</property>

<property>

? <name>dfs.namenode.http-address.mycluster.n1</name>

? <value>wang-108:50070</value>

</property>

<property>

? <name>dfs.namenode.http-address.mycluster.n2</name>

? <value>wang-109:50070</value>

</property>

<property>

? <name>dfs.namenode.shared.edits.dir</name>

? <value>qjournal://wang-108:8485;wang-109:8485;wang-208:8485/mycluster</value>

</property>

<property>

? <name>dfs.journalnode.edits.dir</name>

? <value>/var/sxt/hadoop/ha/jn</value>

</property>

<property>

? <name>dfs.client.failover.proxy.provider.mycluster</name>

? <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

</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_dsa</value>

</property>

<property>

? <name>dfs.ha.automatic-failover.enabled</name>

? <value>true</value>

</property>

3.配置core-site.xml:

<property>

<name>fs.defaultFS</name>

<value>hdfs://mycluster</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/var/sxt/hadoop/ha</value>

</property>

<property>

? <name>ha.zookeeper.quorum</name>

? <value>wang-109:2181,wang-208:2181,wang-209:2181</value>

</property>

4.配置zookeeper(至少需要在3個節(jié)點安裝),下載,解壓,進入conf,使用zoo-sample.cfg模板,mv zoo-sample.cfg zoo.cfg,設(shè)置data目錄dataDir=/var/sxt/zk,然后在末尾添加server.1=node01:2888:3888和server.2=node02:2888:3888和server.3=node03:2888:3888, 然后在dataDir目錄下添加myid文件,內(nèi)容為當前節(jié)點對于的id號(node01為1),然后將zookeeper分發(fā)至其余兩個節(jié)點(scp -r zookeeper-3.4.10 node02:`pwd`/),在三個節(jié)點配置zookeeper的環(huán)境變量,最后啟動zookeeper(zkServer.sh start),可使用zkServer.sh status查看狀態(tài),一起啟動的話,id號最大的為leader,其它為follwer

5.在三個節(jié)點啟動journalnode,hadoop-daemon.sh start journalnode

6.在主節(jié)點格式化hdfs(hdfs namenode -format)

7.在主節(jié)點啟動namenode(hadoop-daemon.sh start namenode),然后在從節(jié)點執(zhí)行hdfs namenode -bootstrapStandby(同步主節(jié)點剛剛格式化的信息)

8.在主節(jié)點初始化zk( hdfs zkfc -formatZK ),此時在有zookeeper的節(jié)點上執(zhí)行zkCli.sh連入查看節(jié)點,在zk中會多一個節(jié)點/hadoop-ha/mycluster,就是在hdfs-site.xml配置的namenode集群的名稱

9.在主節(jié)點啟動hdfs,start-dfs.sh

測試:在瀏覽器查看node01:50070,會發(fā)現(xiàn)主和從節(jié)點皆可訪問,一個active,一個standBy(從節(jié)點不能訪問文件目錄),此時可嘗試停掉主節(jié)點的namenode(hadoop-daemon.sh stop namenode),然后發(fā)現(xiàn)從自動變?yōu)榱酥鳎ㄔ趜ookeeper中看也會發(fā)現(xiàn)相關(guān)信息變更為了從節(jié)點)

關(guān)閉集群:在主節(jié)點執(zhí)行 stop-dfs.sh;再次啟動:start-dfs.sh

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容