本發(fā)明涉及計(jì)算機(jī)軟件應(yīng)用技術(shù)領(lǐng)域,具體涉及一種基于Ambari快速為第三方組件添加微件的方法。
背景技術(shù):
雖然大數(shù)據(jù)越來越流行,但其學(xué)習(xí)的門檻卻一直阻礙著很多的分布式應(yīng)用初學(xué)者或者大數(shù)據(jù)的業(yè)務(wù)應(yīng)用開發(fā)者。多個(gè)產(chǎn)品之間的不兼容問題,快速集成和維護(hù)也顯得比較困難。不管是Hadoop V1或者V2的安裝,又或者Spark/YARN等的集成,都不是幾行簡單的命令可以完成的,而是需要手工修改很多的集群配置,這進(jìn)一步增加了業(yè)務(wù)開發(fā)者的學(xué)習(xí)和使用難度。
Ambari作為一個(gè)系統(tǒng)龐大的平臺(tái)組件,需要完善的監(jiān)控體系來保障性能提升易用性,因此AMS體系尤為重要。Ambari Metrics System簡稱為AMS,它主要為系統(tǒng)管理員提供了集群性能的監(jiān)察功能。
Metrics一般分為Cluster、Host以及Service三個(gè)層級(jí)。Cluster和Host級(jí)主要負(fù)責(zé)監(jiān)察集群機(jī)器相關(guān)的性能,而Service級(jí)別則負(fù)責(zé)Host Component的性能。
Ambari現(xiàn)在已經(jīng)支持高度的可配置化,但是對(duì)于第三方服務(wù)來說如何定義自己的監(jiān)控組件,則需要開發(fā)者深入研究源碼,學(xué)習(xí)與開發(fā)成本尤為巨大。
對(duì)于AMS本身來說,涉及的主要模塊有Metrics Monitor、Hadoop Sinks以及Metrics Collector。AMS也是一個(gè)Master-Slave結(jié)構(gòu)的框架。Master模塊便是Metrics Collector,Slave模塊則是Metrics Monitor和Hadoop Sinks。Salve模塊負(fù)責(zé)收集信息,并發(fā)送給Collector。當(dāng)然Metrics Monitor和Hadoop Sinks也有不同的職責(zé),前者主要負(fù)責(zé)收集機(jī)器本身相關(guān)的指標(biāo),例如CPU、Mem、Disk等;后者則負(fù)責(zé)收集Hadoop相關(guān)Service模塊的性能數(shù)據(jù),例如該模塊占用了多少M(fèi)em,以及該模塊的CPU占用率等。
在Ambari 2.1之后的版本中(包含2.1)支持了配置化Widget的功能。Widget也就是Ambari Web中呈現(xiàn)Metrics的圖控件,它會(huì)根據(jù)Metrics的數(shù)值,做出一個(gè)簡單的聚合運(yùn)算,最終呈現(xiàn)在圖控件中。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是:本發(fā)明針對(duì)以上問題,提供一種基于Ambari快速為第三方組件添加微件的方法,具體的說是一種實(shí)現(xiàn)對(duì)進(jìn)入大數(shù)據(jù)集群二次開發(fā)方便調(diào)試的處理。
本發(fā)明所采用的技術(shù)方案為:
一種基于Ambari快速為第三方組件添加微件的方法,所述方法實(shí)現(xiàn)步驟如下:
1)定義第三方服務(wù)的metainfo.xml;
2)定義監(jiān)控項(xiàng)相關(guān)文件metrics.json,為第三方服務(wù)的Master模塊配置了metrics屬性;
3)定義widget.json,預(yù)定義一個(gè)Graph類型的線性圖,定義Widget綁定Metrics中的metrics屬性,并直接使用該metrics屬性的值作為其value屬性;
4)第三方服務(wù)通過ambari web安裝完成之后,就可以看到預(yù)定義的widget微件。
設(shè)置一個(gè)模塊為第三方服務(wù)收集與發(fā)送Metrics數(shù)據(jù)。
通過聚合運(yùn)算,Widget能夠支持包含多個(gè)Host Component的Service。
相關(guān)的Metrics信息能在ambari的Component頁面中查看。
所述聚合運(yùn)算包括:max、min、avg、sum。
用戶能夠在widget的配置文件中選擇聚合運(yùn)算方式。
所述方法通過定義metrics屬性的閾值,由微件動(dòng)態(tài)的顯示監(jiān)控屬性的變化情況。
本發(fā)明的有益效果為:
本發(fā)明方法可成功為第三方服務(wù)定制專屬的的metrics屬性,并由微件動(dòng)態(tài)的顯示監(jiān)控屬性的變化情況,從而可以很大程度的方便系統(tǒng)管理員完成相關(guān)的監(jiān)測工作。
具體實(shí)施方式
根據(jù)具體實(shí)施方式對(duì)本發(fā)明進(jìn)一步說明:
實(shí)施例1:
一種基于Ambari快速為第三方組件添加微件的方法,所述方法實(shí)現(xiàn)步驟如下:
1)定義第三方服務(wù)的metainfo.xml;
Metaindo.xml示例
2)定義監(jiān)控項(xiàng)相關(guān)文件metrics.json;
定義如下:
如上代碼為第三方服務(wù)的Master模塊配置了4項(xiàng)metrics屬性:test1、test2、test3以及test4;
3)定義widget.json,預(yù)定義一個(gè)Graph類型的線性圖;
具體定義參考如下:
定義監(jiān)控Widget綁定Metrics中的metrics屬性(test1),并直接使用test1的值作為其value屬性;
4)第三方服務(wù)通過ambari web安裝完成之后,就可以看到預(yù)定義的widget微件,可以從Ambari Web中部署這個(gè)第三方服務(wù)到Ambari集群,安裝完成之后便有監(jiān)控微件顯示,此時(shí)微件會(huì)顯示沒有可用的數(shù)據(jù)。
微件(Web widget,簡稱Widget),也就是Ambari Web中呈現(xiàn)Metrics的圖控件,它會(huì)根據(jù)Metrics的數(shù)值,做出一個(gè)簡單的聚合運(yùn)算,最終呈現(xiàn)在圖控件中。
實(shí)施例2
在實(shí)施例1的基礎(chǔ),本實(shí)施例設(shè)置一個(gè)模塊為第三方服務(wù)收集與發(fā)送Metrics數(shù)據(jù)。可以通過一個(gè)簡單的Shell腳本完成該功能。
發(fā)送metrics數(shù)據(jù)腳本
實(shí)施例3
在實(shí)施例2的基礎(chǔ),本實(shí)施例通過聚合運(yùn)算,Widget能夠支持包含多個(gè)Host Component的Service。
由于Widget只支持對(duì)Service Summary的定制,也就是說Widget只支持對(duì)Service Component Metrics屬性的定制。然而同一個(gè)Service的Component可以由多個(gè)Host Component組成,那么Widget就必須經(jīng)過某一種聚合運(yùn)算才可以得到一個(gè)數(shù)值。
實(shí)施例4
在實(shí)施例3的基礎(chǔ),本實(shí)施例相關(guān)的Metrics信息能在ambari的Component頁面中查看。
用戶還可以在一部分Service的Summary頁面中可以看到該Service相關(guān)的Metrics信息。目前,Ambari為YARN、HDFS以及Ambari Metrics等部分Service預(yù)定義了Metrics和Widget信息。
實(shí)施例5
在實(shí)施例3或4的基礎(chǔ),本實(shí)施例所述聚合運(yùn)算包括:max、min、avg、sum。
Ambari為Widget組件提供了4中聚合方式,分別是max、min、avg、sum。簡單來說:max就是Host Component收集的多個(gè)metrics屬性的最大值;min是最小值;avg是平均值;sum則是求和。
實(shí)施例6
在實(shí)施例5的基礎(chǔ),本實(shí)施例用戶能夠在widget的配置文件中選擇聚合運(yùn)算方式。
Widget組件會(huì)以avg為默認(rèn)的聚合方式。用戶可以在widget的配置文件中重寫該方式。
實(shí)施例7
在實(shí)施例6的基礎(chǔ),本實(shí)施例所述方法通過定義metrics屬性的閾值,由微件動(dòng)態(tài)的顯示監(jiān)控屬性的變化情況。Warning的閥值為0.7,Error的閥值為0.9,也就是說當(dāng)百分比大于70%小于90%,圖的顏色會(huì)變成黃色,大與90%則會(huì)為紅色,綠色為正常色。
實(shí)施方式僅用于說明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。