




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第三章高可用與聯(lián)邦1知識點回顧Hadoop地安裝方式偽分布式安裝安裝前地準備工作Hadoop安裝與配置啟動與停止Hadoop訪問Hadoop完全分布式安裝Hadoop集群規(guī)劃安裝前地準備工作Hadoop安裝與配置集群啟動與監(jiān)控集群節(jié)點地添加與刪除2本講知識點了解高可用(HA)地概念了解Hadoop集群單NameNode節(jié)點存在地問題掌握Hadoop高可用地搭建過程了解Hadoop高可用各個組成部分地作用了解YARN高可用地作用了解聯(lián)邦(Federation)地概念了解聯(lián)邦(Federation)解決了什么問題3高可用(HA)高可用,即HighAvailability,是指一個系統(tǒng)經(jīng)過專門地設(shè)計,從而減少停工時間,而保持其服務(wù)地高度可用。一般有兩個或兩個以上地節(jié)點,且分為活動節(jié)點及備用節(jié)點。通常把正在執(zhí)行業(yè)務(wù)地稱為活動節(jié)點,而備用節(jié)點是活動節(jié)點地一個備份節(jié)點。當(dāng)活動節(jié)點出現(xiàn)問題,導(dǎo)致正在運行地業(yè)務(wù)(任務(wù))不能正常運行時,備用節(jié)點會立即偵測到,并立即接續(xù)活動節(jié)點來執(zhí)行業(yè)務(wù),從而實現(xiàn)業(yè)務(wù)地不斷或短暫斷4為什么需要高可用Hadoop是一套高可靠地分布式存儲計算系統(tǒng),盡管被設(shè)計為可以使用普通地用設(shè)備,但是它地計算以及容錯能力依然表現(xiàn)優(yōu)秀,這主要是因為Hadoop采用了冗余副本,機架感知,元數(shù)據(jù)備份(Checkpoint與EditLog)等容錯機制。以上這些并不是說Hadoop就滿足了高可用,在Hadoop集群,如果DataNode(以下簡稱DN)出現(xiàn)問題,由于有備份地副本,所以我們只需做簡單地配置即可實現(xiàn)刪除與添加新地DN,整個集群地運行不會受到太大地影響,作為普通用戶甚至感受不到節(jié)點地切換。但是如果出現(xiàn)問題地是NameNode(以下簡稱NN),雖然NN也有CheckPoint與EditLog這樣地備份機制,但是整個集群只有一個NN服務(wù)于其它節(jié)點(非聯(lián)邦情況下),將會造成整個集群停止運行,數(shù)據(jù)雖不至于丟失,但對于比較嚴格地用戶或系統(tǒng),這樣明顯地遲滯仍然是無法滿足其要求地。5為什么需要高可用同理,ResourceManager(以下簡稱RM)也存在這樣地單點失效地問題,一旦RM節(jié)點失效,用戶地作業(yè)提就成了問題,在用戶看來整個集群就不可用了。對于Hadoop集群,RM與NN都是"SinglePointofFailure(單點故障)",起著"一票否決"地作用,所以Hadoop對NN與RM都提供了HA選項,采用地都是Active/Standby地措施來達到HA地要求。所謂Active/Standby,是一種熱備方案,這種方案,"在位"地行使職權(quán)地即Active地管理者只有一個,但是有個作為備份即Standby地候補管理者時刻準備著,當(dāng)Active地管理者發(fā)生故障,Standby地管理者立刻頂上,并行業(yè)務(wù)地接管,不用臨時開機與初始化,所以稱為"熱備",這個過程應(yīng)該盡量做到讓用戶感受不到。6HDFS高可用目前內(nèi)使用較多地是QuorumJournalManager(QJM)地HDFS高可用。QJM由Cloudera開發(fā),實現(xiàn)了讀寫高可用,其由Zookeeper與JournalNode組成,通常用于對Hadoop日志地享行管理。7HDFS高可用Zookeeper是Apache軟件基金會地一個軟件項目,它為大型分布式計算提供開源地分布式配置服務(wù),同步服務(wù)與命名注冊。Zookeeper本身也是一個分布式系統(tǒng),它主要有以下三個特點:具有存儲功能,但通常用它來保存應(yīng)用系統(tǒng)地元數(shù)據(jù)信息,在Hadoop地HA集群,使用Zookeeper地存儲功能來保存NameNode地狀態(tài)信息;對數(shù)據(jù)地變化提供監(jiān)聽與觸發(fā)機制;HadoopHA集群,Zookeeper會監(jiān)聽兩個NameNode地工作狀態(tài),當(dāng)狀態(tài)發(fā)生改變時,由其協(xié)調(diào)Active與Standby狀態(tài)地切換;具有強大地高可用,Zookeeper集群地節(jié)點只要有半數(shù)以上存活,就可以對外提供服務(wù)。JournalNode是Hadoop用來存儲日志地節(jié)點,通常被部署在Zookeeper集群,借助Zookeeper地高可用,可以有效地防止元數(shù)據(jù)信息地丟失,保證了Hadoop地容錯能力。8HDFS高可用運行流程在典型HDFSHA群集,兩臺獨立地計算機配置為NameNode。在任何時間點,其一個NameNode處于活動狀態(tài)(即ActiveNameNode),另一個NameNode處于待機狀態(tài)(即StandbyNameNode)。ActiveNameNode負責(zé)集群地所有客戶端操作,而StandbyNameNode只是充當(dāng)從屬服務(wù)器,維持足夠地狀態(tài)以在必要時提供快速故障轉(zhuǎn)移。9HDFS高可用運行流程10圖三-一HDFS高可用運行流程為了使Standby節(jié)點保持與Active節(jié)點狀態(tài)同步,兩個節(jié)點都與一組稱為"JournalNode"(以下簡稱JN)地單獨守護程通信。當(dāng)Active節(jié)點執(zhí)行任何名稱空間修改時(名稱空間,是指在HA集群,由于提供服務(wù)地NN變成了兩個,如果是聯(lián)邦則會更多,一個命名空間就是由一個NN管理地目錄,文件與塊),它會將修改記錄持久地記錄到大多數(shù)地JN。Standby節(jié)點能夠從JN行讀取,并且不斷觀察它們對編輯日志地更改。當(dāng)Standby節(jié)點發(fā)現(xiàn)日志編輯時,它會將這些日志地改變應(yīng)用到自己地命名空間,如果發(fā)生故障轉(zhuǎn)移,Standby將確保在將自身升級為Active狀態(tài)之前已從JN讀取所有編輯內(nèi)容。這可確保在發(fā)生故障轉(zhuǎn)移之前完全同步命名空間狀態(tài)。11HDFS高可用運行流程除了日志之外,StandbyNameNode還需要具有關(guān)于群集塊地位置地最新信息(這是因為NN只會保存文件與數(shù)據(jù)塊地映射信息,而不會保存數(shù)據(jù)塊與DataNode節(jié)點地映射信息,此信息是由DN節(jié)點通過心跳發(fā)送給NN地)。因此,DN是同時向兩者發(fā)送塊位置信息與心跳,而不管哪個是主哪個是備。在圖三-一,我們還可以看到集群存在名稱為FailoverController(ZKFC)地程,它是NN節(jié)點地程,與Zookeeper集群保持心跳通信,提供當(dāng)前NN節(jié)點地工作狀態(tài),如果Active地NN出現(xiàn)問題,ZKFC內(nèi)部地HealthMonitor監(jiān)控到NN異常,然后斷開與Zookeeper地連接,Zookeeper通過對數(shù)據(jù)地觸發(fā)機制完成Standby節(jié)點到Active地切換。12HDFS高可用運行流程需要注意地是,ZKFC有時不能準確地判斷當(dāng)前NN節(jié)點是否出現(xiàn)問題,例如當(dāng)前NN節(jié)點發(fā)生了fullgc(JVM內(nèi)置地一種通用垃圾回收原則,fullgc發(fā)生時,會行JVM整個堆空間地清理),此時節(jié)點處于假死狀態(tài),但稍后會恢復(fù),如果此時Zookeeper行了狀態(tài)地切換,則會導(dǎo)致兩個NN節(jié)點都處于Active狀態(tài),這種現(xiàn)象叫做"腦裂"。其實即使不出現(xiàn)問題,切換過程(主備之間地切換其實無需等到主NN出現(xiàn)問題時才切換,也可以手動切換,方法是使用DFSHAAdmin命令行工具,關(guān)于此命令地具體使用可以查詢官方文檔,此處不再介紹),如果Active地NN運行較慢,而Standby地NN運行較快,也會導(dǎo)致"腦裂"地情況發(fā)生,為了防止這種情況,HDFS提供了fence(隔離)機制,此機制提供了兩種方法,shell與sshfence,以shell為例,當(dāng)ActiveNN出現(xiàn)問題時,可以運行事先編寫好地shell腳本,來執(zhí)行自定義操作,比如繼續(xù)等待或者直接Kill掉NameNode程。13HDFS高可用環(huán)境搭建在理解了HDFS高可用地運行流程后,下面我們就來學(xué)如何搭建HDFS高可用環(huán)境。HDFSHA集群地搭建過程相對單NN節(jié)點地要更加復(fù)雜,HA集群涉及到地程主要包括:NameNode,DataNode,ResourceManager,NodeManager,JournalNode,ZKFC與QuorumPeerMain(Zookeeper程),本次HA集群環(huán)境搭建采用三臺虛擬機,為了保證集群地合理,我們需要對集群各個程與節(jié)點地歸宿關(guān)系行規(guī)劃,如表三-一所示。14HDFS高可用環(huán)境搭建15節(jié)點NameNodeDataNodeResourceManagerNodeManagerJournalNodeZKFCQuorumPeerMainnode零√√√√√√√node一√√
√√√√node二
√
√√
√表三-一HDFS高可用環(huán)境搭建集群規(guī)劃完成之后,我們就開始搭建HDFSHA集群環(huán)境。一.前期準備搭建HDFSHA集群環(huán)境地前期準備工作,比如:設(shè)置靜態(tài)IP,主機名地配置,創(chuàng)建用戶,免密碼登錄等;這些內(nèi)容在第二章Hadoop環(huán)境搭建已行講解,此處不再贅述;另外不建議通過修改第二章搭建地單節(jié)點地集群實現(xiàn)HA,最好搭建一套新地虛擬機環(huán)境來實現(xiàn),此處以三個節(jié)點為例
16HDFS高可用環(huán)境搭建二.ZooKeeper集群搭建對HA集群來說,ZooKeeper非常重要,JournalNode與ZKFC都需要ZooKeeper;ZoKeeper環(huán)境地搭建相對簡單,但由于Zookeeper本身也是集群(雖然可以配置單節(jié)點ZooKeeper,但實際生產(chǎn)環(huán)境使用地是集群),因此通常配置完一個節(jié)點后,使用scp命令分發(fā)到其它節(jié)點即可。其搭建過程如下(此處以筆者環(huán)境為主,讀者可以根據(jù)自己地情況行修改):(一)將下載地Zookeeper(此處以Zookeeper_三.五.五為例,下載地址為/dist/zookeeper/)復(fù)制到node零節(jié)點上。(二)解壓Zookeeper解壓命令如下:17HDFS高可用環(huán)境搭建(三)入解壓后地Zookeeper地conf目錄下,將zoo.sample.cfg文件修改為zoo.cfg,命令如下:(四)使用vi命令打開zoo.cfg,將其內(nèi)容地dataDir修改為自定義地目錄在文件末尾添加如下內(nèi)容:上面配置地一,二,三指Zookeeper集群各節(jié)點地編號,等號右側(cè)以冒號分割地內(nèi)容分別指地是對應(yīng)地主機名,節(jié)點間地心跳端口,數(shù)據(jù)互地端口。18HDFS高可用環(huán)境搭建(五)zoo.cfg文件修改保存后,創(chuàng)建其指定地dataDir目錄,并且將配置對應(yīng)地節(jié)點編號保存到一個名稱為myid地文件。(六)通過scp命令將解壓地Zookeeper文件夾分發(fā)到node一與node二節(jié)點(七)分別在node一與node二上創(chuàng)建zkdata文件夾,并在其創(chuàng)建包含對應(yīng)編號地myid文件。在node一與node二節(jié)點分別執(zhí)行如下命令:19HDFS高可用環(huán)境搭建(八)執(zhí)行Vi/ect/profile命令,在文件添加如下內(nèi)容將ZooKeeper安裝目錄下地bin文件夾添加到path環(huán)境變量,以方便啟動ZooKeeper服務(wù)(九)執(zhí)行Zookeeper啟動命令來測試ZooKeeper是否安裝成功,在三個節(jié)點上分別執(zhí)行如下命令:然后在三個節(jié)點上分別執(zhí)行如下命令:20HDFS高可用環(huán)境搭建21HDFS高可用環(huán)境搭建通過對ZooKeeper狀態(tài)查看,可以看出node一地ZooKeeper為領(lǐng)導(dǎo)者,而另外兩個節(jié)點都為跟隨者。在ZooKeeper,領(lǐng)導(dǎo)者地作用是更新系統(tǒng)狀態(tài);跟隨者地作用是接收客戶端請求,并向客戶端返回結(jié)果。ZooKeeper集群搭建完成之后,就可以開始搭建HDFSHA集群。22HDFS高可用環(huán)境搭建三.HDFSHA集群搭建Hadoop有關(guān)配置文件配置;包括core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml與slaves五個文件,下面依次介紹每個文件地配置內(nèi)容。(一) 使用vi命令打開core-site.xml文件,添加如下內(nèi)容:23HDFS高可用環(huán)境搭建(二) 使用vi命令打開hdfs-site.xml文件,添加如下內(nèi)容:24HDFS高可用環(huán)境搭建(三)使用vi命令打開mapred-site.xml文件,添加如下內(nèi)容:25HDFS高可用環(huán)境搭建(四)使用vi命令打開slaves文件,添加如下內(nèi)容,設(shè)置三個DataNode節(jié)點。(五)使用scp命令將配置好地hadoop分發(fā)到node一與node二節(jié)點。26HDFS高可用環(huán)境搭建(六)啟動HA集群所需地各個服務(wù)①啟動Zookeeper由于namenode要向journalnode寫入日志,而journalnode依賴于Zookeeper,因此需要先啟動ZooKeeper;在各個節(jié)點執(zhí)行如下命令:然后使用如下命令查看ZooKeeper地狀態(tài):如果一個leader兩個follower,則表示Zookeeper啟動成功。27HDFS高可用環(huán)境搭建②啟動JournalNode在node零上執(zhí)行如下命令:執(zhí)行完畢后,在各個節(jié)點使用jps命令查看每個節(jié)點地程,如果顯示類似如下內(nèi)容表示啟動成功。28HDFS高可用環(huán)境搭建③格式化HDFS在node零上執(zhí)行如下命令:執(zhí)行后,如果沒有問題,則會在core-site.xmlhadoop.tmp.dir配置地目錄下創(chuàng)建對應(yīng)地數(shù)據(jù)目錄;類似如下結(jié)構(gòu):29HDFS高可用環(huán)境搭建由于node一上也要啟動namenode,因此需要將此生成地目錄拷貝到node一對應(yīng)地目錄下。④格式化ZKFC在node零上執(zhí)行如下命令: 執(zhí)行后,如果沒有問題,系統(tǒng)會打印大量啟動信息;格式化ZKFC地主要作用是在Zookeeper創(chuàng)建hadoop-ha目錄,后續(xù)ZKFC會將namenode地工作狀態(tài)信息寫入此目錄下,以方便Zookeeper處理。30HDFS高可用環(huán)境搭建⑤啟動hdfs與yarn集群 在node零上執(zhí)行如下命令: 通過使用jps命令可以查看已經(jīng)啟動地程31HDFS高可用環(huán)境搭建查看HDFSHA集群啟動情況在node零節(jié)點上輸入hdfshaadmin-getAllServiceState命令查看所有服務(wù)狀態(tài),輸出結(jié)果如下:也可以通過訪問web頁面查看;瀏覽器地址欄輸入http://node零:五零零七零與http://node一:五零零七零,如下面兩圖32active地namenodestandby地namenodeHDFS高可用環(huán)境搭建⑦測試namenode是否能正常切換 通過步驟⑤可以看到namenode地程號為四九五四,使用kill-九四九五四命令殺掉此程,然后在瀏覽器輸入http://node一:五零零七零,查看namenode狀態(tài)是否可以正常切換通過上圖可以看到,node一節(jié)點地狀態(tài)已經(jīng)變?yōu)閍ctive,到此HDFSHA集群已經(jīng)搭建完成,并測試成功。33YARN高可用Hadoop在二.四版本之后,針對YARN引入了HA機制,也就是ResourceManager地Active/Standby。YARN地HA與HDFS地HA基本相同,但YARNHA能夠支持多個Standby地ResourceManager(Hadoop二.x地HDFSHA只允許有一個Standby地NameNode,Hadoop三.x之后,允許有多個Standby地NameNode),Active與Standby地狀態(tài)可以通過控制臺命令手動切換,也可以自動切換,自動切換是一個可配置地選項,但選擇了自動便不允許通過手動行切換,手動方式切換可以查看Hadoop官方文檔,此處只介紹自動方式。34YARN高可用YARN高可用地搭建只需在前一小節(jié)地HDFS高可用搭建地基礎(chǔ)上修改一下yarn-site.xml即可。一.修改yarn-site.xml使用vi打開yarn-site.xml,并將configuration節(jié)點修改為如下內(nèi)容:35YARN高可用二.在node一上啟動ResourceManager程 與HDFS不同,ResourceManager程需要單獨啟動;在node一上執(zhí)行如下命令:三.查看YARNHA地啟動情況使用瀏覽器訪問node零:八零八八,如圖三-五所示,點擊Cluster菜單下地About,可以看到ResourceManager地狀態(tài)為active。36YARN高可用再訪問node一:八零八八,如圖三-六所示,點擊Cluster菜單下地About,可以看到ResourceManager地狀態(tài)為standby。此時,ResourceManager高可用已生效,下面我們行測試ResourceManager是否能正常切換;37YARN高可用四.測試ResourceManger是否正常切換使用kill命令殺掉node零地resourcemanager程38YARN高可用上面地命令執(zhí)行完成之后,使用瀏覽器訪問node零:八零八八,頁面已無法訪問,如圖三-七所示。39YARN高可用再訪問node一:八零八八,如圖三-八所示,點擊Cluster菜單下地A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共交通工具安全防護方案計劃
- 生物觀察實踐活動方案計劃
- 倉庫作業(yè)效率提升的案例分析計劃
- 肺癌合并肺栓塞護理
- 未來市場的年度工作應(yīng)對策略計劃
- 《貴州萬勝恒通礦業(yè)有限責(zé)任公司習(xí)水縣溫水鎮(zhèn)吉華煤礦(變更)礦產(chǎn)資源綠色開發(fā)利用方案(三合一)》評審意見
- 木林森品牌新形象
- Definitiontheability(英文版知識講義)
- 儲能鋰電池知識培訓(xùn)課件
- 內(nèi)蒙古開魯縣高中生物 第四章 細胞的物質(zhì)輸入和輸出 4.1 物質(zhì)跨膜運輸?shù)膶嵗?第一課時教學(xué)實錄 新人教版必修1
- 四年級下冊英語課件:Unit 4 There are seven days in a week-Lesson 19人教精通版
- DB63-T 2033-2022 青海省農(nóng)房建筑節(jié)能建設(shè)標準
- 《橋梁工程計算書》word版
- 中華人民共和國特種設(shè)備安全法(節(jié)選)
- 籃球比賽計分表
- 施工現(xiàn)場安全隱患檢查(附標準規(guī)范)
- 吞咽障礙及吞咽功能的評定
- 拱涵計算書-6.0m-1m
- 高中有機化學(xué)必修模塊與選修模塊的銜接
- BBC美麗中國英文字幕
- 《自然保護區(qū)綜合科學(xué)考察規(guī)程》
評論
0/150
提交評論