Hadoop公共庫(kù)中對(duì)外提供了兩種fenching實(shí)現(xiàn),分別是sshfence和shellfence(缺省實(shí)現(xiàn)),其中sshfence是指通過(guò)ssh登陸目標(biāo)Master節(jié)點(diǎn)上,使用命令fuser將進(jìn)程殺死(通過(guò)tcp端口號(hào)定位進(jìn)程pid,該方法比jps命令更準(zhǔn)確),shellfence是指執(zhí)行一個(gè)用戶(hù)事先定義的shell命令(腳本)完成隔離。
(2)切換對(duì)外透明:為了保證整個(gè)切換是對(duì)外透明的,Hadoop應(yīng)保證所有客戶(hù)端和Slave能自動(dòng)重定向到新的active master上,這通常是通過(guò)若干次嘗試連接舊master不成功后,再重新嘗試鏈接新master完成的,整個(gè)過(guò)程有一定延遲。在新版本的Hadoop RPC中,用戶(hù)可自行設(shè)置RPC客戶(hù)端嘗試機(jī)制、嘗試次數(shù)和嘗試超時(shí)時(shí)間等參數(shù)。
為了印證以上通用方案,以MapReduce HA為例進(jìn)行說(shuō)明,在CDH4中,HA方案介紹可參考我的這篇文章: “CDH中JobTracker HA方案介紹”,架構(gòu)圖如下:
Hadoop 2.0 中 HDFS HA解決方案可閱讀文章: “Hadoop 2.0 NameNode HA和Federation實(shí)踐”,目前HDFS2中提供了兩種HA方案,一種是基于NFS共享存儲(chǔ)的方案,一種基于Paxos算法的方案 Quorum Journal Manager(QJM),它的基本原理就是用2N+1臺(tái)JournalNode存儲(chǔ)EditLog,每次寫(xiě)數(shù)據(jù)操作有大多數(shù)(>=N+1)返回成功時(shí)即認(rèn)為該次寫(xiě)成功,數(shù)據(jù)不會(huì)丟失了。目前社區(qū)正嘗試 使用Bookeeper作為共享存儲(chǔ)系統(tǒng),具體可參考。 HDFS-1623給出的HDFS HA架構(gòu)圖如下所示:
目前進(jìn)度最慢的是YARN HA解決方案,該方案已經(jīng)文檔化,正在規(guī)范和開(kāi)發(fā)中,具體可參考: https://issues.apache.org/jira/browse/YARN-149,總體上看,它的整體架構(gòu)與MapReduce HA和YARN HA的類(lèi)似,但共享存儲(chǔ)系統(tǒng)采用的是Zookeeper。之所以采用Zookeeper這種輕量級(jí)“存儲(chǔ)系統(tǒng)”(需要注意的是,zookeeper設(shè)計(jì)目的并不是存儲(chǔ),而是提供分布式協(xié)調(diào)服務(wù),但它的確可以安全可靠的存儲(chǔ)少量數(shù)據(jù)以解決分布式環(huán)境下多個(gè)服務(wù)之間的數(shù)據(jù)共享問(wèn)題),是由于YARN的大部分信息可以通過(guò)NodeManager和ApplicationMaster的心跳信息進(jìn)行動(dòng)態(tài)重構(gòu),而ResourceManager本身只需記錄少量信息到Zookeeper上即可。
總體上講,HA解決的難度取決于Master自身記錄信息的多少和信息可重構(gòu)性,如果記錄的信息非常龐大且不可動(dòng)態(tài)重構(gòu),比如NameNode,則需要一個(gè)可靠性與性能均很高的共享存儲(chǔ)系統(tǒng),而如果Master保存有很多信息,但絕大多數(shù)可通過(guò)Slave動(dòng)態(tài)重構(gòu),則HA解決方法則容易得多,典型代表是MapReduce和YARN。從另外一個(gè)角度看,由于計(jì)算框架對(duì)信息丟失不是非常敏感,比如一個(gè)已經(jīng)完成的任務(wù)信息丟失,只需重算即可獲取,使得計(jì)算框架的HA設(shè)計(jì)難度遠(yuǎn)低于存儲(chǔ)類(lèi)系統(tǒng)。
原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明: 轉(zhuǎn)載自 董的博客
本文鏈接地址: http://dongxicheng.org/mapreduce-nextgen/hadoop-2-0-ha/
作者: Dong,作者介紹: http://dongxicheng.org/about/
本博客的文章集合: http://dongxicheng.org/recommend/
原文地址:Hadoop 2.0中單點(diǎn)故障解決方案總結(jié), 感謝原作者分享。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com