一種基于hdfs的磁盤故障檢測(cè)方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)存儲(chǔ)領(lǐng)域,尤其涉及一種基于HDFS的磁盤故障檢測(cè)方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著社交網(wǎng)絡(luò)、微博、位置服務(wù)等面向普通互聯(lián)網(wǎng)用戶的交互型網(wǎng)站的蓬勃興起,如Google、Facebook、Twitter以及國內(nèi)的人人網(wǎng)、微博等,向數(shù)以億計(jì)的用戶提供基于互聯(lián)網(wǎng)和無線網(wǎng)絡(luò)的交互服務(wù),遍布全世界的互聯(lián)網(wǎng)用戶每天都進(jìn)行多種多樣的交互,隨時(shí)都在制造各種各樣的數(shù)據(jù),這些數(shù)據(jù)的數(shù)量是單機(jī)時(shí)代數(shù)據(jù)量的數(shù)倍。
[0003]為存儲(chǔ)這些數(shù)據(jù),各互聯(lián)網(wǎng)公司在世界上各地建立了龐大的數(shù)據(jù)中心,單個(gè)數(shù)據(jù)中心的主機(jī)數(shù)量在幾百至數(shù)萬的數(shù)量級(jí)不等。在數(shù)據(jù)中心內(nèi)部,數(shù)據(jù)的存儲(chǔ)最終需要存儲(chǔ)到磁盤上,因此磁盤的可靠性與數(shù)據(jù)的可靠性密切相關(guān)。
[0004]Hadoop作為解決大數(shù)據(jù)領(lǐng)域的重要技術(shù)手段目前被廣泛應(yīng)用著。HDFS作為Hadoop產(chǎn)品中的基礎(chǔ)核心組件包含DataNode (數(shù)據(jù)節(jié)點(diǎn)),DataNode將指定具體哪些盤用以存儲(chǔ)實(shí)際的數(shù)據(jù)塊,磁盤損壞會(huì)導(dǎo)致分布式文件系統(tǒng)塊缺失,損壞磁盤個(gè)數(shù)超過系統(tǒng)配置上限將會(huì)導(dǎo)致DataNode掛掉。每臺(tái)運(yùn)行中的DataNode提供一個(gè)可訪問的WEB URL地址,可以查看該DataNode當(dāng)前可用磁盤掛載點(diǎn)路徑和損壞磁盤個(gè)數(shù)。
[0005]但是以上URL查詢僅能顯示當(dāng)前可用磁盤掛載點(diǎn)路徑和損壞磁盤個(gè)數(shù),無法顯示損壞磁盤,需要參照HDFS配置進(jìn)行人工排除,分析出哪塊磁盤故障。
[0006]DataNode數(shù)據(jù)節(jié)點(diǎn)較多的集群中,如果還是用手動(dòng)訪問URL的方式,如果有50個(gè)DataNode,就需要開50個(gè)窗口訪問50個(gè)DataNode的URL查看磁盤信息,工作量大且容易出錯(cuò)。
【發(fā)明內(nèi)容】
[0007]本發(fā)明要解決的技術(shù)問題,在于提供一種基于HDFS的磁盤故障檢測(cè)方法解決了現(xiàn)有磁盤損壞需要人工檢測(cè),實(shí)時(shí)性低、效率低的問題。
[0008]本發(fā)明是這樣實(shí)現(xiàn)的:一種基于HDFS的磁盤故障檢測(cè)方法,包括如下步驟:
[0009]S100:采集hadhoop集群中所有DataNode組件的端口信息,并存儲(chǔ);所述DataNode組件配置相對(duì)應(yīng)的磁盤,依據(jù)所述端口信息確定DataNode組件相對(duì)應(yīng)的磁盤信息;
[0010]S200:請(qǐng)求端定時(shí)向每一 DataNode組件發(fā)送請(qǐng)求,DataNode組件接收到請(qǐng)求后返回應(yīng)答信息至請(qǐng)求端,發(fā)送請(qǐng)求端查詢返回的應(yīng)答信息所對(duì)應(yīng)的DataNode組件的端口信息,獲取未返回應(yīng)答信息的DataNode組件的端口信息,所述未返回應(yīng)答信息的DataNode組件的磁盤為損壞狀態(tài)。
[0011 ] 其中,所述應(yīng)答信息為URL地址信息,每一 DataNode組件匹配一 URL地址信息。
[0012]所述的基于HDFS的磁盤故障檢測(cè)方法還包括:發(fā)送未返回應(yīng)答信息的DataNode組件的端口信息至上位機(jī),并由上位機(jī)顯示。
[0013]其中,所述監(jiān)控端定時(shí)向每一 DataNode組件發(fā)送請(qǐng)求中,所述定時(shí)為按一定的時(shí)間周期輪詢。
[0014]其中,所述端口信息包括主機(jī)名、主機(jī)端口、主機(jī)路徑。
[0015]本發(fā)明還公開一種基于HDFS的磁盤故障檢測(cè)系統(tǒng),包括:采集模塊、監(jiān)控端,
[0016]采集模塊,采集hadhoop集群中所有DataNode組件的端口信息,并存儲(chǔ);所述DataNode組件配置相對(duì)應(yīng)的磁盤,依據(jù)所述端口信息確定DataNode組件相對(duì)應(yīng)的磁盤信息;
[0017]監(jiān)測(cè)單元,定時(shí)向每一 DataNode組件發(fā)送請(qǐng)求,DataNode組件接收到請(qǐng)求后返回應(yīng)答信息至請(qǐng)求端,發(fā)送請(qǐng)求端查詢返回的應(yīng)答信息所對(duì)應(yīng)的DataNode組件的端口信息,獲取未返回應(yīng)答信息的DataNode組件的端口信息,所述未返回應(yīng)答信息的DataNode組件的磁盤為損壞狀態(tài)。
[0018]其中,所述應(yīng)答信息為URL地址信息,每一 DataNode組件匹配一 URL地址信息。
[0019]其中,所述的系統(tǒng)還包括上位機(jī),所述監(jiān)控端發(fā)送未返回應(yīng)答信息的DataNode組件的端口信息至上位機(jī),并由上位機(jī)顯示。
[0020]其中,所述監(jiān)控端定時(shí)向每一 DataNode組件發(fā)送請(qǐng)求中,所述定時(shí)為按一定的時(shí)間周期輪詢。
[0021 ] 其中,所述端口信息包括主機(jī)名、主機(jī)端口、主機(jī)路徑。
[0022]本發(fā)明的優(yōu)點(diǎn)在于:
[0023]其一、無需人為計(jì)算,讓磁盤故障檢測(cè)系統(tǒng)程序自動(dòng)計(jì)算損壞的磁盤信息,快速且不會(huì)出現(xiàn)計(jì)算錯(cuò)誤。
[0024]其二、磁盤故障檢測(cè)系統(tǒng)定時(shí)訪問請(qǐng)求,無需手動(dòng)刷新請(qǐng)求,節(jié)省成本,能夠?qū)崟r(shí)知曉損壞磁盤信息,一目了然。
[0025]其三、將操作過程集成到監(jiān)控程序中,通過監(jiān)控系統(tǒng)多任務(wù)并行觸發(fā),同時(shí)訪問hadoop集群中所有DataNode組件并匯總結(jié)果,無需管理人員關(guān)注實(shí)現(xiàn)過程,只需查看所述監(jiān)控端最后檢測(cè)的結(jié)果即可。
【附圖說明】
[0026]圖1為本發(fā)明的基于HDFS的磁盤故障檢測(cè)方法的流程圖;
[0027]圖2為本發(fā)明的基于HDFS的磁盤故障檢測(cè)系統(tǒng)的結(jié)構(gòu)框圖;
[0028]圖3為本發(fā)明的基于HDFS的磁盤故障檢測(cè)系統(tǒng)的實(shí)際應(yīng)用圖示;
[0029]標(biāo)號(hào)說明:
[0030]上位機(jī)1 磁盤故障檢測(cè)系統(tǒng)2 DataNode組件3
[0031]采集模塊100 監(jiān)控端200
【具體實(shí)施方式】
[0032]為詳細(xì)說明本發(fā)明的技術(shù)內(nèi)容、構(gòu)造特征、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附圖詳予說明。
[0033]Hadoop分布式文件系統(tǒng)(HDFS)被設(shè)計(jì)成適合運(yùn)行在通用硬件(commodityhardware)上的分布式文件系統(tǒng)。HDFS是Apache Hadoop Core項(xiàng)目的一部分,它是一個(gè)高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的機(jī)器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。
[0034]針對(duì)現(xiàn)有hadoop未能直觀顯示損壞磁盤,使用人員無法對(duì)系統(tǒng)資源狀況做及時(shí)了解并進(jìn)行優(yōu)化,在原h(huán)adoop可訪問URL基礎(chǔ)上設(shè)計(jì)定時(shí)訪問,并且讀取HDFS配置磁盤信息用于計(jì)算,直接將損壞的磁盤信息、顯示到管理系統(tǒng)中。參閱圖1所示,所述的磁盤故障檢測(cè)方法具體的包括如下步驟:
[0035]S100:采集hadhoop集群中所有DataNode組件的端口信息,并存儲(chǔ);所述DataNode組件配置相對(duì)應(yīng)的磁盤,依據(jù)所述端口信息確定DataNode組件相對(duì)應(yīng)的磁盤信息;
[0036]S200:請(qǐng)求端定時(shí)向每一 DataNode組件發(fā)送請(qǐng)求,DataNode組件接收到請(qǐng)求后返回應(yīng)答信息至發(fā)起請(qǐng)求端,發(fā)起請(qǐng)求端查詢返回的應(yīng)答信息所對(duì)應(yīng)的DataNode組件的端口信息,獲取未返回應(yīng)答信息的DataNode組件的端口信息,所述未返回應(yīng)答信息的DataNode組件的磁盤為損壞狀態(tài)。
[0037]上述實(shí)施方式中,所述hadoop集群中包括若干個(gè)DataNode組件,各DataNode組件安裝在不同的主機(jī),所對(duì)應(yīng)的URL地址也不同,采集所述DataNode組件的端口信息,所述的端口信息可以包括主機(jī)名、主機(jī)端口以及主機(jī)路徑。將所述的端口信息進(jìn)行存儲(chǔ),所述的存儲(chǔ)可以采用本地存儲(chǔ)或者異地存儲(chǔ)的方式,本地存儲(chǔ)可以采用本地存儲(chǔ)器進(jìn)行存儲(chǔ),異地存儲(chǔ)可以采用云存儲(chǔ)的方式進(jìn)行存儲(chǔ),現(xiàn)有技術(shù)中慣用的存儲(chǔ)方式均可以應(yīng)用于本實(shí)施方式中。
[0038]定制定時(shí)任務(wù)向每一 DataNode組件發(fā)送請(qǐng)求,所述的請(qǐng)求可以為請(qǐng)求DataNode組件返回URL地址信息、工作狀態(tài)信息、返回主機(jī)名等信息,在一優(yōu)選的技術(shù)方案中,所述應(yīng)答信息為URL地址信息。由于每一 DataNode組件僅有一個(gè)與之相對(duì)應(yīng)的URL地址,因此所述應(yīng)答信息設(shè)定為URL地址能夠保證返回信息的唯一性,提高信息查詢的準(zhǔn)確性以及實(shí)時(shí)性。所述的定時(shí)為按一定的時(shí)間周期輪詢或者采用響應(yīng)的方式發(fā)送請(qǐng)求,所述按一定時(shí)間周期輪詢的周期可設(shè)定為10分鐘、2小時(shí)或者24小時(shí)或者2-5天等,所述的周期并不限于此處所列舉,所述周期可依實(shí)際工作的需要自由設(shè)定。為了提高數(shù)據(jù)的實(shí)時(shí)性在系統(tǒng)性能允許的情況下可縮短周期的時(shí)間,保證能夠盡快的檢測(cè)到損壞的磁盤。應(yīng)用所述存儲(chǔ)器中所存儲(chǔ)的端口信息,查詢應(yīng)答信息所對(duì)應(yīng)的DataNode組件的端口信息,所述返回應(yīng)答信息的DataNode組件的磁盤處于正常工作狀態(tài),未返回應(yīng)答信息的DataNode組件其磁盤處于異常工作狀態(tài)。依據(jù)查詢的結(jié)果獲知處于正常工作狀態(tài)的DataNode組件的端口信息,并可采用排除法或者直接查詢的方式獲得異常工作狀態(tài)的DataNode組件的端口信息,所述端口信息可包括損壞磁盤的主機(jī)名、損壞磁盤的路徑,并可統(tǒng)計(jì)損壞磁盤的數(shù)據(jù)等。
[0039]損壞磁盤的統(tǒng)計(jì)具體的可以通過排除法獲取損壞磁盤信息的端口信息,其具體的操作為比對(duì)接收到的應(yīng)答信息所對(duì)應(yīng)的端口信息與原始采集的端口信息的差異部分,所述差異部分即為損壞的磁盤信息,查詢所述差異部分相對(duì)應(yīng)的端口信息。
[0040]為了能夠直觀的獲知損壞磁盤的端口信息,可將上述的損壞磁盤端口信息的結(jié)果直接進(jìn)行展示,所述的展示可通過顯示屏幕展示,其可采用將所查詢到的損壞磁盤的端口信息發(fā)送至上位機(jī),通過上位機(jī)的顯示器等顯示設(shè)備直接展示。其還可以通過安裝警示模塊在所述DataNode組件上