技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)分布式計(jì)算領(lǐng)域,特別涉及一種Hadoop系統(tǒng)中從屬節(jié)點(diǎn)服務(wù)自動(dòng)恢復(fù)方法。
背景技術(shù):
Hadoop是一個(gè)能夠讓用戶輕松架設(shè)和使用的分布式計(jì)算平臺(tái),Hadoop分布式文件系統(tǒng)(HDFS)被設(shè)計(jì)成適合運(yùn)行在通用硬件上的分布式文件系統(tǒng),具有高效性、高擴(kuò)展性、高容錯(cuò)性,可移植性等優(yōu)點(diǎn)。因此hadoop是架設(shè)大型數(shù)據(jù)中心的最佳選擇。hadoop存在唯一的主控節(jié)點(diǎn)(也稱為namenode)和多個(gè)從屬節(jié)點(diǎn),主控節(jié)點(diǎn)負(fù)責(zé)管理文件系統(tǒng)名稱空間和控制外部客戶機(jī)的訪問(wèn),并將任務(wù)分配給從屬節(jié)點(diǎn)去執(zhí)行。傳統(tǒng)的Hadoop分布式集群的架設(shè)和啟動(dòng)過(guò)程:1、首先是啟動(dòng)一個(gè)節(jié)點(diǎn)作為主控節(jié)點(diǎn),并將主控節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)在本地;2、啟動(dòng)其他節(jié)點(diǎn)作為從屬節(jié)點(diǎn),從屬節(jié)點(diǎn)啟動(dòng)后,主動(dòng)聯(lián)系主控節(jié)點(diǎn)進(jìn)行注冊(cè)和信息同步,建立起hadoop分布式文件系統(tǒng)。
在主控節(jié)點(diǎn)和從屬節(jié)點(diǎn)的本地?cái)?shù)據(jù)中,都存儲(chǔ)著一個(gè)全局的namespaceID,在從屬節(jié)點(diǎn)聯(lián)系主控節(jié)點(diǎn)時(shí),只有namespaceID與主控節(jié)點(diǎn)的namespaceID一致,從屬節(jié)點(diǎn)才能加入Hadoop系統(tǒng)中,提供服務(wù)。在實(shí)際應(yīng)用中,從屬節(jié)點(diǎn)的服務(wù)器由于斷電等異常情況導(dǎo)致重啟,重啟后經(jīng)常會(huì)出現(xiàn)所存儲(chǔ)的namespaceID和主控節(jié)點(diǎn)的namespaceID不一致,導(dǎo)致本節(jié)點(diǎn)不能加入hadoop系統(tǒng)中,從而不能夠恢復(fù)從屬節(jié)點(diǎn)的服務(wù),往往恢復(fù)的手段是管理員找到所有異常的節(jié)點(diǎn),手動(dòng)的改變從屬節(jié)點(diǎn)的namespaceID與主控節(jié)點(diǎn)一致,由于hadoop應(yīng)用的場(chǎng)景多是大型的數(shù)據(jù)中心,排查和更改都是一個(gè)繁重的工作,且引入了人為操作失誤的風(fēng)險(xiǎn)。
技術(shù)實(shí)現(xiàn)要素:
(一)所要解決的技術(shù)問(wèn)題
針對(duì)上述問(wèn)題,本發(fā)明提供了一種Hadoop系統(tǒng)中從屬節(jié)點(diǎn)服務(wù)自動(dòng)恢復(fù)方法,避免了人為操作失誤的風(fēng)險(xiǎn)。
(二)技術(shù)方案
本發(fā)明提供一種hadoop系統(tǒng)中從屬節(jié)點(diǎn)服務(wù)自動(dòng)恢復(fù)方法,該方法包括:
S1、在節(jié)點(diǎn)集群中部署Gluster分布式文件存儲(chǔ)系統(tǒng),提供存儲(chǔ)空間;
S2、在主控節(jié)點(diǎn)上掛載所述存儲(chǔ)空間,配置主控節(jié)點(diǎn),并完成hadoop系統(tǒng)的建立,所述配置包括:將所述主控節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)空間;
S3、從屬節(jié)點(diǎn)恢復(fù)服務(wù),包括:將所述存儲(chǔ)有主控節(jié)點(diǎn)數(shù)據(jù)的存儲(chǔ)空間掛載到所述從屬節(jié)點(diǎn)本地,并查看所述從屬節(jié)點(diǎn)本地的namespaceID與所述存儲(chǔ)空間中的namespaceID是否相同,若不同則將從屬節(jié)點(diǎn)本地的namespaceID修改為存儲(chǔ)空間的namespaceID,從屬節(jié)點(diǎn)啟動(dòng)服務(wù)。
其中,還包括步驟S4:從屬節(jié)點(diǎn)服務(wù)恢復(fù)后卸載掛載在從屬節(jié)點(diǎn)的所述存儲(chǔ)有主控節(jié)點(diǎn)數(shù)據(jù)的存儲(chǔ)空間。
其中,所述步驟S1包括:
任意選擇集群中的3個(gè)節(jié)點(diǎn),在每個(gè)節(jié)點(diǎn)上啟動(dòng)Gluster服務(wù)器服務(wù),該服務(wù)將所在節(jié)點(diǎn)上的部分磁盤(pán)提供出來(lái),結(jié)合構(gòu)成Gluster分布式文件存儲(chǔ)系統(tǒng)的存儲(chǔ)空間;在每個(gè)節(jié)點(diǎn)上部署Gluster客戶端服務(wù)。
(三)有益效果
本發(fā)明提供了一種Hadoop系統(tǒng)中從屬節(jié)點(diǎn)服務(wù)自動(dòng)恢復(fù)方法,通過(guò)使用Gluster分布式文件存儲(chǔ)系統(tǒng),令主控節(jié)點(diǎn)的數(shù)據(jù)可一直不斷寫(xiě)入掛載的存儲(chǔ)空間中,利用Gluster系統(tǒng),并不需要額外架設(shè)存儲(chǔ)設(shè)備,只需在原有的節(jié)點(diǎn)上啟動(dòng)一些服務(wù),部署成本基本為0,并且Gluster的訪問(wèn)很靈活;通過(guò)將Gluster系統(tǒng)的存儲(chǔ)空間臨時(shí)掛載在從屬節(jié)點(diǎn)本地,查看全局namespaceID是否相同,不同則修改,再啟動(dòng)恢復(fù)從屬節(jié)點(diǎn)服務(wù),該恢復(fù)過(guò)程完全自動(dòng)控制,避免了人為查找和更改工作,降低人為操作失誤的風(fēng)險(xiǎn)和人力成本的投入。
附圖說(shuō)明
圖1為本發(fā)明方法提供的步驟流程圖。
具體實(shí)施方式
本發(fā)明提供了一種hadoop系統(tǒng)中從屬節(jié)點(diǎn)服務(wù)自動(dòng)恢復(fù)方法,本發(fā)明中的節(jié)點(diǎn)指的是物理服務(wù)器,節(jié)點(diǎn)集群即是服務(wù)器集群,在所有的節(jié)點(diǎn)中選擇一個(gè)啟動(dòng)hadoop系統(tǒng)的主控(即master)的服務(wù),這臺(tái)就是主控節(jié)點(diǎn),其他節(jié)點(diǎn)啟動(dòng)hadoop系統(tǒng)的從屬(slave)服務(wù),稱為從屬節(jié)點(diǎn),這樣就構(gòu)成了一個(gè)hadoop服務(wù)的節(jié)點(diǎn)集群。如圖1所示該方法步驟流程為:
S1、在節(jié)點(diǎn)集群中部署Gluster分布式文件存儲(chǔ)系統(tǒng),提供存儲(chǔ)空間;
Gluster分布式文件存儲(chǔ)系統(tǒng)即Gluster系統(tǒng),任意選擇集群中的3個(gè)節(jié)點(diǎn),在每個(gè)節(jié)點(diǎn)上啟動(dòng)Gluster服務(wù)器(Glusterserver)服務(wù),該服務(wù)將其所在節(jié)點(diǎn)上的部分磁盤(pán)提供出來(lái),三個(gè)節(jié)點(diǎn)提供的磁盤(pán)結(jié)合在一起構(gòu)成Gluster系統(tǒng)的存儲(chǔ)空間(volume);
在節(jié)點(diǎn)集群中每個(gè)節(jié)點(diǎn)上部署Gluster客戶端(Glusterclient)服務(wù),令每個(gè)節(jié)點(diǎn)都可以將Gluster系統(tǒng)的volume掛載到本地,并訪問(wèn)和修改volume上存儲(chǔ)的內(nèi)容,且訪問(wèn)方式靈活。
S2、在主控節(jié)點(diǎn)上掛載所述存儲(chǔ)空間,配置主控節(jié)點(diǎn),并完成hadoop系統(tǒng)的建立,所述配置包括:將所述主控節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)空間;
對(duì)主控節(jié)點(diǎn)來(lái)說(shuō),掛載volume后,一直保持掛載,并配置hadoop系統(tǒng)主控服務(wù)的數(shù)據(jù)的存放位置為volume的掛載點(diǎn),這樣hadoop系統(tǒng)的主控服務(wù)數(shù)據(jù)(包括namespaceID)不斷的寫(xiě)入volume中。
在第一次安裝部署從屬節(jié)點(diǎn)時(shí),由于從屬節(jié)點(diǎn)還沒(méi)有數(shù)據(jù),所以直接啟動(dòng)從屬節(jié)點(diǎn)服務(wù),從屬節(jié)點(diǎn)自動(dòng)與主控節(jié)點(diǎn)聯(lián)系,并加入hadoop分布系統(tǒng)中,完成hadoop系統(tǒng)的建立。
S3、從屬節(jié)點(diǎn)恢復(fù)服務(wù),包括:將所述存儲(chǔ)有主控節(jié)點(diǎn)數(shù)據(jù)的存儲(chǔ)空間掛載到所述從屬節(jié)點(diǎn)本地,并查看所述從屬節(jié)點(diǎn)本地的namespaceID與所述存儲(chǔ)空間中的namespaceID是否相同,若不同則將從屬節(jié)點(diǎn)本地的namespaceID修改為存儲(chǔ)空間的namespaceID,從屬節(jié)點(diǎn)啟動(dòng)服務(wù)
從屬節(jié)點(diǎn)發(fā)生故障如物理機(jī)宕機(jī)等,導(dǎo)致從屬節(jié)點(diǎn)失去服務(wù)能力。當(dāng)物理機(jī)重啟后從屬節(jié)點(diǎn)要重啟恢復(fù)服務(wù),從屬節(jié)點(diǎn)在啟動(dòng)服務(wù)之前都會(huì)執(zhí)行:從屬節(jié)點(diǎn)掛載volume,得到主控節(jié)點(diǎn)寫(xiě)入的namespaceID,并和自己本地的namespaceID比較,如果和自己的不一樣,就把自己的改成主控節(jié)點(diǎn)的namespaceID,然后再啟動(dòng)服務(wù),若查看一致,則從屬節(jié)點(diǎn)直接啟動(dòng)服務(wù),即從屬節(jié)點(diǎn)主動(dòng)聯(lián)系主控節(jié)點(diǎn)進(jìn)行注冊(cè)和信息同步,加入Hadoop系統(tǒng)。
本發(fā)明在每次從屬節(jié)點(diǎn)因故重新啟動(dòng)時(shí),都主動(dòng)的和主控節(jié)點(diǎn)進(jìn)行同步namespaceID,使從屬節(jié)點(diǎn)的namespaceID和主控節(jié)點(diǎn)保持一致,從而避免從屬節(jié)點(diǎn)不能回復(fù)服務(wù)能力;且恢復(fù)過(guò)程中完全由程序自動(dòng)控制,降低人為操作失誤的風(fēng)險(xiǎn)和人力成本的投入;
同時(shí)Gluster系統(tǒng)提供了自動(dòng)備份的機(jī)制,即在主控節(jié)點(diǎn)掛載了volume,向其中寫(xiě)入數(shù)據(jù)時(shí),實(shí)際在組成此volume的三個(gè)Glusterserver的節(jié)點(diǎn)上都備份了寫(xiě)入的數(shù)據(jù),所以其中一臺(tái)節(jié)點(diǎn)發(fā)生故障,不會(huì)導(dǎo)致數(shù)據(jù)丟失,增強(qiáng)了主控節(jié)點(diǎn)的安全性。
其中,還包括步驟S4、從屬節(jié)點(diǎn)服務(wù)恢復(fù)后卸載掛載在從屬節(jié)點(diǎn)的所述存儲(chǔ)有主控節(jié)點(diǎn)數(shù)據(jù)的存儲(chǔ)空間。
從屬節(jié)點(diǎn)恢復(fù)服務(wù)后,掛載的存儲(chǔ)空間失去作用,故將其卸載。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進(jìn)和替換,這些改進(jìn)和替換也應(yīng)視為本發(fā)明的保護(hù)范圍。