這篇文章主要介紹HA機(jī)制下的hadoop如何配置,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到雁山網(wǎng)站設(shè)計(jì)與雁山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋雁山地區(qū)。
NameNode服務(wù)器一臺(tái)是ACTIVE和一臺(tái)是STANDBY。通過(guò)Qjournal(日志管理系統(tǒng)) 使用zkfc(基于zookeeper失敗切換控制)
如何防止腦裂現(xiàn)象: 當(dāng)ACTIVE假死的時(shí)候,STANDBY的zkfc會(huì)發(fā)出指令 ssh kill-9 namenode 返回0(成功殺死,返回1則殺死失敗)的時(shí)候再去通知第二臺(tái)namenode去切換狀態(tài)。 若無(wú)返回碼的時(shí)候(超時(shí)未響應(yīng)),則啟動(dòng)proweroff.sh(用戶自定義的腳本)給第一臺(tái)namenode斷電,返回0則執(zhí)行正常,然后去切換。
當(dāng)?shù)谝慌_(tái)機(jī)器斷電的時(shí)候(指活躍狀態(tài)的namenode和zkfc都斷電了),則第2臺(tái)的zkfc會(huì)執(zhí)行proweroff.sh。
關(guān)鍵詞: 1、有兩個(gè)namenode,分別是active和standby.
2、有兩個(gè)zkfc來(lái)監(jiān)控和管理兩個(gè)namenode的狀態(tài)
3、元數(shù)據(jù)日志edits由一個(gè)專門的日志系統(tǒng)負(fù)責(zé)管理--qjoournal
4、zkfc及qjournal的功能都要依賴于zookeeper的服務(wù)來(lái)實(shí)現(xiàn)
5、zkfc做狀態(tài)切換時(shí)有兩個(gè)防止腦裂的機(jī)制--ssh和shell腳本。
打開(kāi)hadoop的安裝目錄,如果還不會(huì)下載或者基礎(chǔ)都不會(huì)使用的請(qǐng)看文章開(kāi)頭我提供的鏈接,請(qǐng)先學(xué)習(xí)基礎(chǔ)配置。 我這里主要使用了5臺(tái)虛擬機(jī)來(lái)模擬搭建這整個(gè)集群環(huán)境。
主機(jī)名 IP地址 主要功能
ubuntu1 192.168.44.128 namenode zkfc ResourceManager
ubuntu2 192.168.44.131 namenode zkfc ResourceManager
ubuntu3 192.168.44.132 DataNode、NodeManager、JournalNode、QuorumPeerMain
ubuntu4 192.168.44.133 DataNode、NodeManager、JournalNode、QuorumPeerMain
ubuntu5 192.168.44.134 DataNode、NodeManager、JournalNode、QuorumPeerMain
我們可以先來(lái)配置ubuntu1,然后剩下的就scp到其他機(jī)器上就可以了 core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://ns1/</value></property> <!-- 指定hadoop臨時(shí)目錄 --> <property> <name>hadoop.tmp.dir</name> <value>/home/admin1/hadoop/HAhadoop/tmp/hadoop</value> </property> <!-- 指定zookeeper地址 --> <property> <name>ha.zookeeper.quorum</name> <value>ubuntu3:2181,ubuntu4:2181,ubuntu5:2181</value> </property> </configuration>
hdfs-site.xml
1 <configuration> 2 <!--指定hdfs的nameservice為ns1,需要和core-site.xml中的保持一致 --> 3 <property> 4 <name>dfs.nameservices</name> 5 <value>ns1</value> 6 </property> 7 <!-- ns1下面有兩個(gè)NameNode,分別是nn1,nn2 --> 8 <property> 9 <name>dfs.ha.namenodes.ns1</name>10 <value>nn1,nn2</value>11 </property>12 <!-- nn1的RPC通信地址 -->13 <property>14 <name>dfs.namenode.rpc-address.ns1.nn1</name>15 <value>ubuntu1:9000</value>16 </property>17 <!-- nn1的http通信地址 -->18 <property>19 <name>dfs.namenode.http-address.ns1.nn1</name>20 <value>ubuntu1:50070</value>21 </property>22 <!-- nn2的RPC通信地址 -->23 <property>24 <name>dfs.namenode.rpc-address.ns1.nn2</name>25 <value>ubuntu2:9000</value>26 </property>27 <!-- nn2的http通信地址 -->28 <property>29 <name>dfs.namenode.http-address.ns1.nn2</name>30 <value>ubuntu2:50070</value>31 </property>32 <!-- 指定NameNode的元數(shù)據(jù)在JournalNode上的存放位置 -->33 <property>34 <name>dfs.namenode.shared.edits.dir</name>35 <value>qjournal://ubuntu3:8485;ubuntu4:8485;ubuntu5:8485/ns1</value>36 </property>37 <!-- 指定JournalNode在本地磁盤存放數(shù)據(jù)的位置 -->38 <property>39 <name>dfs.journalnode.edits.dir</name>40 <value>/home/admin1/hadoop/HAhadoop/journaldata</value>41 </property>42 <!-- 開(kāi)啟NameNode失敗自動(dòng)切換 -->43 <property>44 <name>dfs.ha.automatic-failover.enabled</name>45 <value>true</value>46 </property>47 <!-- 配置失敗自動(dòng)切換實(shí)現(xiàn)方式 -->48 <property>49 <name>dfs.client.failover.proxy.provider.ns1</name>50 <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>51 </property>52 <!-- 配置隔離機(jī)制方法,多個(gè)機(jī)制用換行分割,即每個(gè)機(jī)制暫用一行-->53 <property>54 <name>dfs.ha.fencing.methods</name>55 <value>56 sshfence 57 shell(/bin/true) 58 </value>59 </property>60 <!-- 使用sshfence隔離機(jī)制時(shí)需要ssh免登陸 -->61 <property>62 <name>dfs.ha.fencing.ssh.private-key-files</name>63 <value>/home/admin1/.ssh/id_rsa</value>64 </property>65 <!-- 配置sshfence隔離機(jī)制超時(shí)時(shí)間 -->66 <property>67 <name>dfs.ha.fencing.ssh.connect-timeout</name>68 <value>30000</value>69 </property>70 </configuration>
mapred-site.xml
1 <configuration>2 <!-- 指定mr框架為yarn方式 -->3 <property>4 <name>mapreduce.framework.name</name>5 <value>yarn</value>6 </property>7 </configuration>
yarn-site.xml
1 <configuration> 2 3 <!-- 開(kāi)啟RM高可用 --> 4 <property> 5 <name>yarn.resourcemanager.ha.enabled</name> 6 <value>true</value> 7 </property> 8 <!-- 指定RM的cluster id --> 9 <property>10 <name>yarn.resourcemanager.cluster-id</name>11 <value>yrc</value>12 </property>13 <!-- 指定RM的名字 -->14 <property>15 <name>yarn.resourcemanager.ha.rm-ids</name>16 <value>rm1,rm2</value>17 </property>18 <!-- 分別指定RM的地址 -->19 <property>20 <name>yarn.resourcemanager.hostname.rm1</name>21 <value>ubuntu1</value>22 </property>23 <property>24 <name>yarn.resourcemanager.hostname.rm2</name>25 <value>ubuntu2</value>26 </property>27 <!-- 指定zk集群地址 -->28 <property>29 <name>yarn.resourcemanager.zk-address</name>30 <value>ubuntu3:2181,ubuntu4:2181,ubuntu5:2181</value>31 </property>32 <property>33 <name>yarn.nodemanager.aux-services</name>34 <value>mapreduce_shuffle</value>35 </property>36 </configuration>
slaves
1 ubuntu3 2 ubuntu4 3 ubuntu5
還有就是修改一下主機(jī)名。 sudo vi /etc/hostname ubuntu1 以及hosts的內(nèi)容:
192.168.44.128 ubuntu1 192.168.44.131 ubuntu2 192.168.44.132 ubuntu3 192.168.44.133 ubuntu4 192.168.44.134 ubuntu5
注意:一定要把原來(lái)的那兩天127.0.1.1 這一條給刪除掉,一個(gè)hosts文件中,不能出現(xiàn)主機(jī)名相同和ip地址不同的情況,我開(kāi)始就是因?yàn)檫@個(gè)因?yàn)?,折騰了很久,datanode就是搭建不起來(lái)。
啟動(dòng)過(guò)程:
1、啟動(dòng)zookeeper集群 分別在ubuntu3,4,5中輸入 開(kāi)啟服務(wù): bin/zkServer.sh start 查看狀態(tài): bin/zkServer.sh status
2、啟動(dòng)journalnode 分別在ubuntu3,4,5中輸入 sbin/hadoop-daemon.sh start journalnode 運(yùn)行jps命令檢驗(yàn),多了JournalNode進(jìn)程
3、格式化HDFS
bin/hdfs namenode -format #格式化后會(huì)在根據(jù)core-site.xml中的hadoop.tmp.dir配置生成個(gè)文件,這里我配置的是/HAhadoop/tmp,然后將/HAhadoop/tmp拷貝到ubuntu2的/HAhadoop/下。
scp -r tmp/ ubuntu2:/home/admin1/hadoop/HAhadoop/
4、格式化ZKFC(在ubuntu1上執(zhí)行即可) bin/hdfs zkfc -formatZK
5、啟動(dòng)HDFS(在ubuntu1上執(zhí)行) sbin/start-dfs.sh
6、啟動(dòng)YARN(在ubuntu1上執(zhí)行) sbin/start-yarn.sh
如果是在ubuntu1中啟動(dòng)的話,那么默認(rèn)的瀏覽窗口會(huì)是這樣: ubuntu2是Active的,ubuntu1是一個(gè)Standby狀態(tài),
這個(gè)時(shí)候如果你去ubuntu2里面把這個(gè)namenode進(jìn)程殺死的話,ubuntu1會(huì)自動(dòng)切換為Active,ubuntu2會(huì)變成無(wú)法連接。
在剩下的3個(gè)datanode上面會(huì)這樣:
以上是“HA機(jī)制下的hadoop如何配置”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
本文題目:HA機(jī)制下的hadoop如何配置
分享URL:http://jinyejixie.com/article28/gpsjcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、做網(wǎng)站、企業(yè)建站、、商城網(wǎng)站、小程序開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)