本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,具體而言,涉及一種集群服務(wù)器的故障修復(fù)方法和裝置。
背景技術(shù):
隨著大數(shù)據(jù)時(shí)代的到來,需要分析的數(shù)據(jù)越來越多。Hadoop作為最好的大數(shù)據(jù)分析工具之一,被很多公司廣泛使用。數(shù)據(jù)量的不斷增長(zhǎng),Hadoop的集群規(guī)模也不斷擴(kuò)大,很多公司內(nèi)部的Hadoop集群規(guī)模已經(jīng)發(fā)展到100臺(tái)服務(wù)器以上。Hadoop集群中運(yùn)行的服務(wù)有Hadoop分布式文件系統(tǒng)(Distributed File System,簡(jiǎn)稱HDFS)、Hadoop數(shù)據(jù)倉庫工具(Hive)、分布式存儲(chǔ)系統(tǒng)(Hadoop-Database,簡(jiǎn)稱Hbase)、另一種資源協(xié)調(diào)者(Yet Another Resource Negotiator,簡(jiǎn)稱Yarn)、企業(yè)級(jí)搜索應(yīng)用服務(wù)器(Solr)和Impala等。通過現(xiàn)有技術(shù)中的方法,在超過100臺(tái)服務(wù)器的大規(guī)模集群中排查集群故障,是非常困難的一件事。例如,發(fā)現(xiàn)HBase服務(wù)變慢或意外停止服務(wù),運(yùn)維人員需要登錄集群的每一臺(tái)服務(wù)器查看Hbase運(yùn)行日志,分析問題,然后解決故障。上述通過人工排查集群故障的方法,不僅效率低下,而且準(zhǔn)確率低。
針對(duì)上述的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例提供了一種集群服務(wù)器的故障修復(fù)方法和裝置,以至少解決現(xiàn)有技術(shù)中修復(fù)集群服務(wù)器故障效率較低的技術(shù)問題。
根據(jù)本申請(qǐng)實(shí)施例的一個(gè)方面,提供了一種集群服務(wù)器的故障修復(fù)方法,包括:獲取所述集群服務(wù)器中目標(biāo)服務(wù)的運(yùn)行日志,其中,所述目標(biāo)服務(wù)為所述集群服務(wù)器中運(yùn)行的服務(wù)程序;將獲取到的所述運(yùn)行日志與故障信息庫中的故障特征信息進(jìn)行匹配;當(dāng)匹配到與所述運(yùn)行日志相同的故障特征信息的情況下,確定所述集群服務(wù)器存在故障;以及按照預(yù)設(shè)修復(fù)方式對(duì)所述集群服務(wù)器進(jìn)行故障修復(fù)。
進(jìn)一步地,所述預(yù)設(shè)修復(fù)方式為自動(dòng)修復(fù)方式,按照預(yù)設(shè)修復(fù)方式對(duì)所述集群服務(wù)器進(jìn)行故障修復(fù)包括:根據(jù)目標(biāo)故障特征信息調(diào)用所述故障信息庫中對(duì)應(yīng)的故障解決方案,其中,所述目標(biāo)故障特征信息為所述故障信息庫中與所述運(yùn)行日志相匹配的 故障特征信息,并且在所述故障信息庫中一個(gè)所述故障特征信息對(duì)應(yīng)一個(gè)所述故障解決方案;以及通過與所述目標(biāo)故障特征信息對(duì)應(yīng)的故障解決方案對(duì)所述集群服務(wù)器進(jìn)行故障修復(fù)。
進(jìn)一步地,所述預(yù)設(shè)修復(fù)方式為手動(dòng)修復(fù)方式,按照預(yù)設(shè)修復(fù)方式對(duì)所述集群服務(wù)器進(jìn)行故障修復(fù)包括:根據(jù)目標(biāo)故障特征信息調(diào)用所述故障信息庫中對(duì)應(yīng)的故障解決方案,其中,所述目標(biāo)故障特征信息為所述故障信息庫中與所述運(yùn)行日志相匹配的故障特征信息,并且在所述故障信息庫中一個(gè)所述故障特征信息對(duì)應(yīng)一個(gè)所述故障解決方案;以及發(fā)送與所述目標(biāo)故障特征信息對(duì)應(yīng)的故障解決方案至用戶終端,以通知用戶根據(jù)所述故障解決方案對(duì)所述集群服務(wù)器進(jìn)行修復(fù)。
進(jìn)一步地,在獲取所述集群服務(wù)器中目標(biāo)服務(wù)的運(yùn)行日志之前,所述方法還包括:爬取目標(biāo)網(wǎng)頁中的信息,并從所述信息中提取所述故障特征信息和所述故障特征信息的故障解決方案。
進(jìn)一步地,所述集群服務(wù)器包括多個(gè)服務(wù)器,在獲取所述集群服務(wù)器中目標(biāo)服務(wù)的運(yùn)行日志之前,所述方法還包括:存儲(chǔ)程序包于每個(gè)所述服務(wù)器中,其中,所述程序包為獲取每個(gè)所述服務(wù)器的所述運(yùn)行日志的包;以及獲取所述集群服務(wù)器中每個(gè)服務(wù)器的運(yùn)行日志包括:通過所述程序包獲取所述集群服務(wù)器中所述目標(biāo)服務(wù)的運(yùn)行日志。
根據(jù)本申請(qǐng)實(shí)施例的另一方面,還提供了一種集群服務(wù)器的故障修復(fù)裝置,包括:獲取單元,用于獲取所述集群服務(wù)器中目標(biāo)服務(wù)的運(yùn)行日志,其中,所述目標(biāo)服務(wù)為所述集群服務(wù)器中運(yùn)行的服務(wù)程序;匹配單元,用于將獲取到的所述運(yùn)行日志與故障信息庫中的故障特征信息進(jìn)行匹配;確定單元,用于當(dāng)匹配到與所述運(yùn)行日志相同的故障特征信息的情況下,確定所述集群服務(wù)器存在故障;以及修復(fù)單元,用于按照預(yù)設(shè)修復(fù)方式對(duì)所述集群服務(wù)器進(jìn)行故障修復(fù)。
進(jìn)一步地,所述預(yù)設(shè)修復(fù)方式為自動(dòng)修復(fù)方式,所述修復(fù)單元包括:第一調(diào)用模塊,用于根據(jù)目標(biāo)故障特征信息調(diào)用所述故障信息庫中對(duì)應(yīng)的故障解決方案,其中,所述目標(biāo)故障特征信息為所述故障信息庫中與所述運(yùn)行日志相匹配的故障特征信息,并且在所述故障信息庫中一個(gè)所述故障特征信息對(duì)應(yīng)的一個(gè)所述故障解決方案;以及第一修復(fù)模塊,用于通過與所述目標(biāo)故障特征信息對(duì)應(yīng)的故障解決方案對(duì)所述集群服務(wù)器進(jìn)行故障修復(fù)。
進(jìn)一步地,所述預(yù)設(shè)修復(fù)方式為手動(dòng)修復(fù)方式,所述修復(fù)單元包括:第二調(diào)用模塊,用于根據(jù)目標(biāo)故障特征信息調(diào)用所述故障信息庫中對(duì)應(yīng)的故障解決方案,其中, 所述目標(biāo)故障特征信息為所述故障信息庫中與所述運(yùn)行日志相匹配的故障特征信息,并且在所述故障信息庫中一個(gè)所述故障特征信息對(duì)應(yīng)一個(gè)所述故障解決方案;以及發(fā)送與所述目標(biāo)故障特征信息對(duì)應(yīng)的模塊,用于發(fā)送所述故障解決方案至用戶終端,以通知用戶根據(jù)所述故障解決方案對(duì)所述集群服務(wù)器進(jìn)行修復(fù)。
進(jìn)一步地,所述裝置還包括:爬取單元,用于在所述獲取單元獲取所述集群服務(wù)器中目標(biāo)服務(wù)的運(yùn)行日志之前,爬取目標(biāo)網(wǎng)頁中的信息,并從所述信息中提取所述故障特征信息和所述故障特征信息的故障解決方案。
進(jìn)一步地,所述集群服務(wù)器包括多個(gè)服務(wù)器,所述裝置還包括:存儲(chǔ)單元,用于在所述獲取單元獲取所述集群服務(wù)器中目標(biāo)服務(wù)的運(yùn)行日志之前,存儲(chǔ)程序包于每個(gè)所述服務(wù)器中,其中,所述程序包為獲取每個(gè)所述服務(wù)器的所述運(yùn)行日志的包;以及所述獲取單元包括:獲取模塊,用于通過所述程序包獲取所述集群服務(wù)器中所述目標(biāo)服務(wù)的運(yùn)行日志。
在本申請(qǐng)實(shí)施例中,采用獲取所述集群服務(wù)器中目標(biāo)服務(wù)的運(yùn)行日志,其中,所述目標(biāo)服務(wù)為所述集群服務(wù)器中運(yùn)行的服務(wù)程序;將獲取到的所述運(yùn)行日志與故障信息庫中的故障特征信息進(jìn)行匹配;當(dāng)匹配到與所述運(yùn)行日志相同的故障特征信息的情況下,確定所述集群服務(wù)器存在故障;按照預(yù)設(shè)修復(fù)方式對(duì)所述集群服務(wù)器進(jìn)行故障修復(fù)的方式。通過將實(shí)時(shí)獲取到的集群服務(wù)器的運(yùn)行日志與故障信息庫中的故障特征信息進(jìn)行匹配,再根據(jù)匹配結(jié)果確定集群服務(wù)器存在故障的情況下,按照預(yù)設(shè)修復(fù)方式實(shí)現(xiàn)集群服務(wù)器的故障修復(fù),達(dá)到了及時(shí)發(fā)現(xiàn)集群服務(wù)器故障并修復(fù)故障的目的,從而實(shí)現(xiàn)了集群服務(wù)器自愈修復(fù)的技術(shù)效果,進(jìn)而解決了現(xiàn)有技術(shù)中修復(fù)集群服務(wù)器故障效率較低的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:
圖1是根據(jù)本申請(qǐng)實(shí)施例的一種集群服務(wù)器的故障修復(fù)方法的流程圖;
圖2是根據(jù)本申請(qǐng)可選實(shí)施例的一種集群服務(wù)器的故障修復(fù)方法的流程圖;以及
圖3是根據(jù)本申請(qǐng)實(shí)施例的一種集群服務(wù)器的故障修復(fù)裝置的示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請(qǐng)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分的實(shí)施例,而不是全部的實(shí)施例。基于本申請(qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。
需要說明的是,本申請(qǐng)的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請(qǐng)的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
根據(jù)本申請(qǐng)實(shí)施例,提供了一種集群服務(wù)器的故障修復(fù)方法,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
圖1是根據(jù)本申請(qǐng)實(shí)施例的一種集群服務(wù)器的故障修復(fù)方法的流程圖,如圖1所示,該方法包括如下步驟S102至步驟S108:
步驟S102,獲取集群服務(wù)器中目標(biāo)服務(wù)的運(yùn)行日志,其中,目標(biāo)服務(wù)為集群服務(wù)器中運(yùn)行的服務(wù)程序。
集群服務(wù)器有多種,在本申請(qǐng)實(shí)施例中,集群服務(wù)器可以為Hadoop集群服務(wù)器。在Hadoop集群服務(wù)器中運(yùn)行的服務(wù)有多種,可以為HDFS、Hive、Hbase、Yarn、Solr、Impala等,并且在每個(gè)目標(biāo)服務(wù)中獲取到的運(yùn)行日志可以為一條,還可以為多條。
步驟S104,將獲取到的運(yùn)行日志與故障信息庫中的故障特征信息進(jìn)行匹配。
在本申請(qǐng)實(shí)施例中,故障信息庫可以為一個(gè)數(shù)據(jù)庫,該信息庫中存儲(chǔ)大量的故障特征信息,即集群服務(wù)器中可能出現(xiàn)的故障的原因。因此,將獲取到的一條或多條運(yùn)行日志與故障特征信息進(jìn)行匹配,確定一條或多條運(yùn)行日志中是否存在與故障特征信息內(nèi)容相同的運(yùn)行日志。
步驟S106,當(dāng)匹配到與運(yùn)行日志相同的故障特征信息的情況下,確定集群服務(wù)器 存在故障。
若匹配到運(yùn)行日志中存在與故障特征信息內(nèi)容相同的日志的情況下,則確定該集群服務(wù)器存在某種故障。
步驟S108,按照預(yù)設(shè)修復(fù)方式對(duì)集群服務(wù)器進(jìn)行故障修復(fù)。
在本申請(qǐng)實(shí)施例中,通過將實(shí)時(shí)獲取到的集群服務(wù)器的運(yùn)行日志與故障信息庫中的故障特征信息進(jìn)行匹配,再根據(jù)匹配結(jié)果確定集群服務(wù)器存在故障的情況下,按照預(yù)設(shè)修復(fù)方式實(shí)現(xiàn)集群服務(wù)器的故障修復(fù),達(dá)到了及時(shí)發(fā)現(xiàn)集群服務(wù)器故障并修復(fù)故障的目的,從而實(shí)現(xiàn)了集群服務(wù)器自愈修復(fù)的技術(shù)效果,進(jìn)而解決了現(xiàn)有技術(shù)中修復(fù)集群服務(wù)器故障效率較低的技術(shù)問題。
對(duì)集群服務(wù)器進(jìn)行故障修復(fù)的預(yù)設(shè)修復(fù)方式有很多種,在另一可選實(shí)施例中,預(yù)設(shè)修復(fù)方式可以為自動(dòng)修復(fù)方式,按照自動(dòng)修復(fù)方式對(duì)集群服務(wù)器進(jìn)行故障修復(fù)包括如下步驟S1081至步驟S1083:
步驟S1081,根據(jù)目標(biāo)故障特征信息調(diào)用故障信息庫中對(duì)應(yīng)的故障解決方案,其中,目標(biāo)故障特征信息為故障信息庫中與運(yùn)行日志相匹配的故障特征信息,并且在故障信息庫中一個(gè)故障特征信息對(duì)應(yīng)一個(gè)故障解決方案。
步驟S1083,通過與目標(biāo)故障特征信息對(duì)應(yīng)的故障解決方案對(duì)集群服務(wù)器進(jìn)行故障修復(fù)。
具體地,若通過上述步驟S106確定出運(yùn)行日志中存在與故障特征信息的內(nèi)容相同的日志時(shí),則確定該故障特征信息為目標(biāo)故障特征信息。確定目標(biāo)故障特征信息之后,在故障信息庫中調(diào)用該目標(biāo)故障特征信息所對(duì)應(yīng)的故障解決方案,進(jìn)而根據(jù)該故障解決方案實(shí)現(xiàn)對(duì)集群服務(wù)器進(jìn)行自動(dòng)的故障修復(fù)。
例如,Hadoop集群服務(wù)器中運(yùn)行的Hbase數(shù)據(jù)庫中數(shù)據(jù)的存儲(chǔ)量超出了Hbase數(shù)據(jù)庫的最大限制,則在運(yùn)行日志中會(huì)存在該故障的日志。通過將獲取到的運(yùn)行日志與故障特征信息進(jìn)行比較可知,Hadoop集群服務(wù)器出現(xiàn)了故障,即Hbase數(shù)據(jù)庫中數(shù)據(jù)的存儲(chǔ)量超出了Hbase數(shù)據(jù)庫的最大限制,此時(shí),在數(shù)據(jù)信息庫中調(diào)用與該運(yùn)行日志相同的故障特征信息(即,目標(biāo)故障特征信息)的故障解決方案。若故障解決方案為增大Hbase數(shù)據(jù)庫的存儲(chǔ)量,則服務(wù)器根據(jù)故障解決方案提示的方案修改Hadoop集群服務(wù)器中所有服務(wù)器的相關(guān)參數(shù),來擴(kuò)大Hbase數(shù)據(jù)庫的存儲(chǔ)量,使得該Hadoop集群服務(wù)器的故障得到修復(fù)。
需要說明的是,故障信息庫中不僅存儲(chǔ)故障特征信息,還可以存儲(chǔ)與該故障特征 信息所包含的故障的解決方案,并且,一個(gè)故障特征信息對(duì)應(yīng)一個(gè)故障解決方案。
在本可選實(shí)施例中,若Hadoop集群服務(wù)器中的任意一個(gè)服務(wù)器出現(xiàn)故障時(shí),需對(duì)Hadoop集群服務(wù)器中的所有服務(wù)器進(jìn)行故障修復(fù)。
對(duì)集群服務(wù)器進(jìn)行故障修復(fù)的預(yù)設(shè)修復(fù)方式有很多種,在另一可選實(shí)施例中,預(yù)設(shè)修復(fù)方式可以為手動(dòng)修復(fù)方式,按照手動(dòng)修復(fù)方式對(duì)集群服務(wù)器進(jìn)行故障修復(fù)包括如下步驟S1085至步驟S1087:
步驟S1085,根據(jù)目標(biāo)故障特征信息調(diào)用故障信息庫中對(duì)應(yīng)的故障解決方案,其中,目標(biāo)故障特征信息為故障信息庫中與運(yùn)行日志相匹配的故障特征信息,并且在故障信息庫中一個(gè)故障特征信息對(duì)應(yīng)一個(gè)故障解決方案。
步驟S1087,發(fā)送與目標(biāo)故障特征信息對(duì)應(yīng)的故障解決方案至用戶終端,以通知用戶根據(jù)故障解決方案對(duì)集群服務(wù)器進(jìn)行修復(fù)。
具體地,除上述所描述的自動(dòng)修復(fù)方式外,還可以選取手動(dòng)修復(fù)方式實(shí)現(xiàn)對(duì)Hadoop集群服務(wù)器的故障修復(fù)。
同上述S1081相同,根據(jù)目標(biāo)故障特征信息調(diào)用故障信息庫中對(duì)應(yīng)的故障解決方案,并將該故障解決方案發(fā)送至用戶終端(例如,手機(jī)和電腦等終端),以提示用戶根據(jù)故障解決方案實(shí)現(xiàn)對(duì)Hadoop集群服務(wù)器的故障修復(fù)。其中,可以以郵件的形式發(fā)送至用戶的郵箱,還可以以短信的形式發(fā)送至用戶的手機(jī)等終端設(shè)備。
例如,Hadoop集群服務(wù)器中運(yùn)行的Hbase數(shù)據(jù)庫中數(shù)據(jù)的存儲(chǔ)量超出了Hbase數(shù)據(jù)庫的最大限制時(shí),則在運(yùn)行日志中會(huì)存在該故障的日志。通過將獲取到的運(yùn)行日志與故障特征信息進(jìn)行比較可知,Hadoop集群服務(wù)器出現(xiàn)了故障,即Hbase數(shù)據(jù)庫中數(shù)據(jù)的存儲(chǔ)量超出了Hbase數(shù)據(jù)庫的最大限制,此時(shí),在數(shù)據(jù)信息庫中調(diào)目標(biāo)故障特征信息的故障解決方案。并將該故障解決方案以郵件或者短信的形式發(fā)送至用戶的終端,以通知用戶根據(jù)手動(dòng)對(duì)Hadoop集群服務(wù)器進(jìn)行故障修復(fù)。
需要說明的是,上述自動(dòng)修復(fù)方式和手動(dòng)修復(fù)方式用戶可根據(jù)實(shí)際需要來進(jìn)行選取,例如,用戶可以設(shè)置當(dāng)匹配到目標(biāo)故障特征信息時(shí),即向用戶終端發(fā)送提示信息,以提示用戶是選取自動(dòng)修復(fù)方式,還是選取手動(dòng)修復(fù)方式。又例如,用戶還可以設(shè)置集群服務(wù)器為默認(rèn)的自動(dòng)修復(fù)方式,實(shí)現(xiàn)對(duì)集群服務(wù)器的故障修復(fù)。
可選地,在獲取集群服務(wù)器中目標(biāo)服務(wù)的運(yùn)行日志之前,集群服務(wù)器的故障修復(fù)方法還包括如下步驟S1:爬取目標(biāo)網(wǎng)頁中的信息,并從信息中提取故障特征信息和故障特征信息的故障解決方案。具體地,故障信息庫里的故障特征信息和故障解決方案 是通過部署爬蟲程序取抓取目標(biāo)網(wǎng)頁(例如,Hadoop官方網(wǎng)站、Hadoop論壇和Hadoop社區(qū))中的全部?jī)?nèi)容,從中抓取到的全部?jī)?nèi)容中提取得到故障特征信息以及該故障特征信息對(duì)應(yīng)的故障解決方案,并將該故障特征信息和故障解決方案保存在故障信息庫中。其中,可以在多個(gè)數(shù)據(jù)源中爬取目標(biāo)網(wǎng)頁中的全部?jī)?nèi)容,例如,可以在包含Hadoop內(nèi)容的相關(guān)論壇、貼吧和網(wǎng)站中爬取Hadoop官方網(wǎng)站和Hadoop論壇等網(wǎng)頁的全部?jī)?nèi)容。
可選地,集群服務(wù)器包括多個(gè)服務(wù)器,在獲取集群服務(wù)器中目標(biāo)服務(wù)的運(yùn)行日志之前,集群服務(wù)器的故障修復(fù)方法還包括如下步驟S3至步驟S5:
步驟S3,存儲(chǔ)程序包于每個(gè)服務(wù)器中,其中,程序包為獲取每個(gè)服務(wù)器的運(yùn)行日志的包。
步驟S5,獲取集群服務(wù)器中每個(gè)服務(wù)器的運(yùn)行日志包括:通過程序包獲取集群服務(wù)器中目標(biāo)服務(wù)的運(yùn)行日志。
具體地,在Hadoop集群服務(wù)器中的每臺(tái)服務(wù)器中均部署一個(gè)程序包(即,代理程序),這個(gè)程序包的功能是實(shí)時(shí)讀取當(dāng)前服務(wù)器上各個(gè)hadoop服務(wù)的運(yùn)行日志,并將運(yùn)行日志同故障信息庫中的故障特征信息進(jìn)行匹配,匹配得到故障特征信息中是否包含運(yùn)行日志。
圖2是根據(jù)本申請(qǐng)可選實(shí)施例的一種集群服務(wù)器的故障修復(fù)方法的流程圖,如圖2所示,該方法包括如下步驟S202至步驟S214:
步驟S202,獲取集群服務(wù)器中目標(biāo)服務(wù)的運(yùn)行日志。
集群服務(wù)器有多種,在本可選實(shí)施例中,集群服務(wù)器可以為Hadoop集群服務(wù)器,集群服務(wù)器可以為Hadoop集群服務(wù)器。在Hadoop集群服務(wù)器中運(yùn)行的服務(wù)有多種,可以為HDFS、Hive、Hbase、Yarn、Solr、Impala等。
步驟S204,將獲取到的運(yùn)行日志與故障信息庫中的故障特征信息進(jìn)行匹配。其中,當(dāng)在故障信息庫中匹配到與運(yùn)行日志相同的信息時(shí),執(zhí)行步驟S206。
故障信息庫有多種,在本可選實(shí)施例中,故障信息庫可以為一個(gè)數(shù)據(jù)庫,該數(shù)據(jù)庫中保存著故障特征信息,以及與該故障特征信息對(duì)應(yīng)的故障處理方案。故障信息庫里的故障特征信息是通過部署爬蟲程序抓取目標(biāo)網(wǎng)頁的全部?jī)?nèi)容,其中,目標(biāo)網(wǎng)頁可以為Hadoop官方網(wǎng)站和hadoop社區(qū)的故障解決網(wǎng)頁,進(jìn)而從抓取到的全部?jī)?nèi)容中提取出故障特征信息和故障解決方案,并保存在故障信息庫中。
通過將獲取到的運(yùn)行日志與故障特征信息進(jìn)行匹配,可以確定Hadoop集群服務(wù)器 是否出現(xiàn)了故障。
步驟S208,判斷預(yù)設(shè)修復(fù)方式是否為手動(dòng)修復(fù)方式,若判斷出是手動(dòng)修復(fù)方式的情況下,執(zhí)行步驟S210;若判斷出不是手動(dòng)修復(fù)方式的情況下,執(zhí)行步驟S214。
Hadoop集群服務(wù)器的修復(fù)方式可以有多種,例如手動(dòng)修復(fù)方式和自動(dòng)修復(fù)方式,用戶可根據(jù)實(shí)際設(shè)置預(yù)設(shè)修復(fù)方式,例如,默認(rèn)選取手動(dòng)修復(fù)方式,或者默認(rèn)選取自動(dòng)修復(fù)方式。在本可選實(shí)施例中,可以先判斷用戶設(shè)置的預(yù)設(shè)修復(fù)方式是否為手動(dòng)修復(fù)方式,若是,則執(zhí)行下述步驟S210,即將故障解決方案發(fā)送至用戶終端,例如,以郵件或者短信的形式發(fā)送故障解決方案至用戶終端。用戶在接收到該故障解決方案之后,執(zhí)行步驟S212根據(jù)故障解決方案中的相關(guān)內(nèi)容對(duì)集群服務(wù)器進(jìn)行修復(fù)。若否,則服務(wù)器根據(jù)獲取到的故障解決方案自動(dòng)對(duì)集群服務(wù)器進(jìn)行修復(fù)。
步驟S210,發(fā)送故障解決方案至用戶終端。
步驟S212,用戶根據(jù)故障解決方案對(duì)集群服務(wù)器進(jìn)行修復(fù)。
步驟S214,根據(jù)故障解決方案自動(dòng)對(duì)集群服務(wù)器進(jìn)行修復(fù)。
本申請(qǐng)實(shí)施例還提供了一種集群服務(wù)器的故障修復(fù)裝置,該故障修復(fù)裝置主要用于執(zhí)行本申請(qǐng)實(shí)施例上述內(nèi)容所提供的集群服務(wù)器的故障修復(fù)方法,以下對(duì)本申請(qǐng)實(shí)施例送提供的集群服務(wù)器的故障修復(fù)裝置做具體介紹。
圖3是根據(jù)本申請(qǐng)實(shí)施例的一種集群服務(wù)器的故障修復(fù)裝置的示意圖,如圖3所示,該修復(fù)裝置主要包括獲取單元10、匹配單元20、確定單元30和修復(fù)單元40,其中:
獲取單元10,用于獲取集群服務(wù)器中目標(biāo)服務(wù)的運(yùn)行日志,其中,目標(biāo)服務(wù)為集群服務(wù)器中運(yùn)行的服務(wù)程序。
集群服務(wù)器有多種,在本申請(qǐng)實(shí)施例中,集群服務(wù)器可以為Hadoop集群服務(wù)器。在Hadoop集群服務(wù)器中運(yùn)行的服務(wù)有多種,可以為HDFS、Hive、Hbase、Yarn、Solr、Impala等,并且在每個(gè)目標(biāo)服務(wù)中獲取到的運(yùn)行日志可以為一條,還可以為多條。
匹配單元20,用于將獲取到的運(yùn)行日志與故障信息庫中的故障特征信息進(jìn)行匹配。
故障信息庫可以為一個(gè)數(shù)據(jù)庫,該信息庫中存儲(chǔ)大量的故障特征信息,即集群服務(wù)器中可能出現(xiàn)的故障的原因。因此,將獲取到的一條或多條運(yùn)行日志與故障特征信息進(jìn)行匹配,確定一條或多條運(yùn)行日志中是否存在與故障特征信息內(nèi)容相同的日志。
確定單元30,用于當(dāng)匹配到與運(yùn)行日志相同的故障特征信息的情況下,確定集群 服務(wù)器存在故障。
若匹配到運(yùn)行日志中存在與故障特征信息內(nèi)容相同的日志的情況下,則確定該集群服務(wù)器存在某種故障。
修復(fù)單元40,用于按照預(yù)設(shè)修復(fù)方式對(duì)集群服務(wù)器進(jìn)行故障修復(fù)。
在本申請(qǐng)實(shí)施例中,通過將實(shí)時(shí)獲取到的集群服務(wù)器的運(yùn)行日志與故障信息庫中的故障特征信息進(jìn)行匹配,再根據(jù)匹配結(jié)果確定集群服務(wù)器存在故障的情況下,按照預(yù)設(shè)修復(fù)方式實(shí)現(xiàn)集群服務(wù)器的故障修復(fù),達(dá)到了及時(shí)發(fā)現(xiàn)集群服務(wù)器故障并修復(fù)故障的目的,從而實(shí)現(xiàn)了集群服務(wù)器自愈修復(fù)的技術(shù)效果,進(jìn)而解決了現(xiàn)有技術(shù)中修復(fù)集群服務(wù)器故障效率較低的技術(shù)問題。
可選地,預(yù)設(shè)修復(fù)方式為自動(dòng)修復(fù)方式,修復(fù)單元包括:第一調(diào)用模塊,用于根據(jù)目標(biāo)故障特征信息調(diào)用故障信息庫中對(duì)應(yīng)的故障解決方案,其中,目標(biāo)故障特征信息為故障信息庫中與運(yùn)行日志相匹配的故障特征信息,并且在故障信息庫中一個(gè)故障特征信息對(duì)應(yīng)一個(gè)故障解決方案;第一修復(fù)模塊,用于通過與目標(biāo)故障特征信息對(duì)應(yīng)的故障解決方案對(duì)集群服務(wù)器進(jìn)行故障修復(fù)。
具體地,若通過匹配單元匹配出運(yùn)行日志中存在與故障特征信息的內(nèi)容相同的日志時(shí),即可通過確定單元確定出該故障特征信息為目標(biāo)故障特征信息。確定目標(biāo)故障特征信息之后,通過第一調(diào)用模塊在故障信息庫中調(diào)用該目標(biāo)故障特征信息所對(duì)應(yīng)的故障解決方案,進(jìn)而通過第一修復(fù)模塊根據(jù)該故障解決方案實(shí)現(xiàn)對(duì)集群服務(wù)器進(jìn)行自動(dòng)的故障修復(fù)。
需要說明的是,故障信息庫中不僅存儲(chǔ)故障特征信息,還可以存儲(chǔ)與該故障特征信息所包含的故障的解決方案,并且,一個(gè)故障特征信息對(duì)應(yīng)一個(gè)故障解決方案。
可選地,預(yù)設(shè)修復(fù)方式為手動(dòng)修復(fù)方式,修復(fù)單元包括:第二調(diào)用模塊,用于根據(jù)目標(biāo)故障特征信息調(diào)用故障信息庫中對(duì)應(yīng)的故障解決方案,其中,目標(biāo)故障特征信息為故障信息庫中與運(yùn)行日志相匹配的故障特征信息,并且在故障信息庫中一個(gè)故障特征信息對(duì)應(yīng)一個(gè)故障解決方案;發(fā)送模塊,用于發(fā)送與目標(biāo)故障特征信息對(duì)應(yīng)的故障解決方案至用戶終端,以通知用戶根據(jù)故障解決方案對(duì)集群服務(wù)器進(jìn)行修復(fù)。
具體地,除上述所描述的自動(dòng)修復(fù)方式外,還可以選取手動(dòng)修復(fù)方式實(shí)現(xiàn)對(duì)Hadoop集群服務(wù)器的故障修復(fù)。
通過第二調(diào)用模塊在故障信息庫中調(diào)用與目標(biāo)故障特征信息對(duì)應(yīng)的故障解決方案,并通過發(fā)送模塊將該故障解決方案發(fā)送至用戶終端(例如,手機(jī)和電腦等終端),以提 示用戶根據(jù)故障解決方案實(shí)現(xiàn)對(duì)Hadoop集群服務(wù)器的故障修復(fù)。其中,可以以郵件的形式發(fā)送至用戶的郵箱,還可以以短信的形式發(fā)送至用戶的手機(jī)等終端設(shè)備。
需要說明的是,上述自動(dòng)修復(fù)方式和手動(dòng)修復(fù)方式用戶可根據(jù)實(shí)際需要來進(jìn)行選取,例如,用戶可以設(shè)置當(dāng)匹配到目標(biāo)故障特征信息時(shí),即向用戶終端發(fā)送提示信息,以提示用戶是選取自動(dòng)修復(fù)方式,還是選取手動(dòng)修復(fù)方式。又例如,用戶還可以設(shè)置集群服務(wù)器為默認(rèn)的自動(dòng)修復(fù)方式,實(shí)現(xiàn)對(duì)集群服務(wù)器的故障修復(fù)。
裝置還包括:爬取單元,用于爬取目標(biāo)網(wǎng)頁中的信息,并從信息中提取故障特征信息和故障特征信息的故障解決方案。
具體地,故障信息庫里的故障特征信息和故障解決方案是通過爬取單元來爬取目標(biāo)網(wǎng)頁(例如,Hadoop官方網(wǎng)站和Hadoop社區(qū))的中的全部?jī)?nèi)容,從中抓取到的全部?jī)?nèi)容中提取得到故障特征信息以及該故障特征信息對(duì)應(yīng)的故障解決方案,并將該故障特征信息和故障解決方案保存在故障信息庫中。其中,可以在多個(gè)數(shù)據(jù)源中爬取目標(biāo)網(wǎng)頁中的全部?jī)?nèi)容,例如,可以在包含Hadoop內(nèi)容的相關(guān)論壇、貼吧和網(wǎng)站中爬取Hadoop官方網(wǎng)站和Hadoop論壇等網(wǎng)頁的全部?jī)?nèi)容。
集群服務(wù)器包括多個(gè)服務(wù)器,裝置還包括:存儲(chǔ)單元,用于存儲(chǔ)程序包于每個(gè)服務(wù)器中,其中,程序包為獲取每個(gè)服務(wù)器的運(yùn)行日志的包;獲取單元包括:獲取模塊,用于通過程序包獲取集群服務(wù)器中目標(biāo)服務(wù)的運(yùn)行日志。
具體地,在Hadoop集群服務(wù)器中的每臺(tái)服務(wù)器中均部署一個(gè)程序包(即,代理程序),這個(gè)程序包的功能是實(shí)時(shí)讀取當(dāng)前服務(wù)器上各個(gè)hadoop服務(wù)的運(yùn)行日志,并將運(yùn)行日志同故障信息庫中的故障特征信息進(jìn)行匹配,匹配出是否包含目標(biāo)故障特征信息。
所述集群服務(wù)器的故障修復(fù)裝置包括處理器和存儲(chǔ)器,上述獲取單元、匹配單元、確定單元和修復(fù)單元等均作為程序單元存儲(chǔ)在存儲(chǔ)器中,由處理器執(zhí)行存儲(chǔ)在存儲(chǔ)器中的上述程序單元來實(shí)現(xiàn)相應(yīng)的功能。
處理器中包含內(nèi)核,由內(nèi)核去存儲(chǔ)器中調(diào)取相應(yīng)的程序單元。內(nèi)核可以設(shè)置一個(gè)或以上,通過調(diào)整內(nèi)核參數(shù)來及時(shí)發(fā)現(xiàn)集群服務(wù)器故障并修復(fù)故障,從而實(shí)現(xiàn)了集群服務(wù)器自愈修復(fù)的技術(shù)效果,進(jìn)而解決了現(xiàn)有技術(shù)中修復(fù)集群服務(wù)器故障效率較低的技術(shù)問題。
存儲(chǔ)器可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM),存儲(chǔ)器包括至少一個(gè)存儲(chǔ)芯片。
本申請(qǐng)還提供了一種計(jì)算機(jī)程序產(chǎn)品,當(dāng)在數(shù)據(jù)處理設(shè)備上執(zhí)行時(shí),適于執(zhí)行初始化有如下方法步驟的程序代碼:獲取所述集群服務(wù)器中目標(biāo)服務(wù)的運(yùn)行日志,其中,所述目標(biāo)服務(wù)為所述集群服務(wù)器中運(yùn)行的服務(wù)程序;將獲取到的所述運(yùn)行日志與故障信息庫中的故障特征信息進(jìn)行匹配;當(dāng)匹配到與所述運(yùn)行日志相同的故障特征信息的情況下,確定所述集群服務(wù)器存在故障;按照預(yù)設(shè)修復(fù)方式對(duì)所述集群服務(wù)器進(jìn)行故障修復(fù)。
上述本申請(qǐng)實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本申請(qǐng)的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本申請(qǐng)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上僅是本申請(qǐng)的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來 說,在不脫離本申請(qǐng)?jiān)淼那疤嵯?,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本申請(qǐng)的保護(hù)范圍。