一種基于模板的大數(shù)據(jù)組件web部署方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于大數(shù)據(jù)組件應(yīng)用領(lǐng)域,特別是采用基于模板化安裝結(jié)構(gòu),WEB跨系統(tǒng)平臺操作,可視化監(jiān)控進(jìn)程技術(shù),方便快捷地實現(xiàn)同時在多個節(jié)點上安裝部署多個組件,目前包括Hadoop,HBase,Hive,Kafka和Zookeeper5個組件,目的簡化開發(fā)人員的安裝手續(xù),為后期實現(xiàn)大數(shù)組作業(yè)提供基礎(chǔ)環(huán)境。
【背景技術(shù)】
[0002]Hadoop是一個開源的高效云計算基礎(chǔ)架構(gòu)平臺,其不僅僅在云計算領(lǐng)域用途廣泛,還可以支撐搜索引擎服務(wù),作為搜索引擎底層的基礎(chǔ)架構(gòu)系統(tǒng),同時在海量數(shù)據(jù)處理、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、科學(xué)計算等領(lǐng)域都越來越受到青睞。近兩年尤其是今年國內(nèi)外采用MapReduce模型的應(yīng)用也逐漸豐富起來,如像NTT KDDI和中國移動這類的電信公司采用該模型分析用戶信息,優(yōu)化網(wǎng)絡(luò)配置;美國供電局采用該模型來分析電網(wǎng)現(xiàn)狀;包括VISA和JP摩根在內(nèi)的金融公司采用該模型來分析股票數(shù)據(jù);包括Amazon和ebay在內(nèi)的零售商和電子商務(wù)公司也開始采用該模型;甚至部分生物公司也采用該模型來進(jìn)行DNA測序和分析[1]。
[0003]然而Hadoop安裝、部署、管理的難度非常大,這使用很多用戶對Hadoop望而卻步,目前除了手動安裝官網(wǎng)版本外,應(yīng)用最廣泛的就是Cloudera提供的Hadoop發(fā)布版本,這個版本是簡化后的Hadoop,雖然在配置上比原版的要省去一些步驟,但還是存在需要手動設(shè)置SSH,更改Hadoop核心配置,而且需要在Linux系統(tǒng)中手動輸入命令操作等問題。
[0004]這樣一系列的操作一是比較耗時耗力,二是容易出錯,為了有效解決這一問題,實現(xiàn)快速高效地部署和管理大規(guī)模的集群計算節(jié)點,本發(fā)明設(shè)計了基于模板的WEB跨平臺操作方法,可實現(xiàn)模板化自動安裝Hadoop組件,除此之外,還可選擇一并安裝其他組件,如HBase,HiVe等,若后期如需增加新的組件,只需要增加新組建的安裝腳本,在應(yīng)用模板中進(jìn)行調(diào)用即可,無需編寫新的安裝程序,方便擴(kuò)展。
[0005][l]http://blog.csdn.net/yangjl38/article/details/7620955
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是:提供一種通過WEB界面快速準(zhǔn)確安裝Hadoop,HBase,Hive等組件的方法,并且方便后期增加其他新的組件,為運(yùn)行大數(shù)據(jù)作業(yè)提供基礎(chǔ)環(huán)境。
[0007]本發(fā)明的思想是:解析模板,獲取信息,安裝組件。
[0008]1)解析模板:通過入口找到相應(yīng)的應(yīng)用模板和組件模板,解析其中的組件實例和依賴關(guān)系,并將解析出來的信息存放到內(nèi)存中;
[0009]2)獲取信息:主要對獲取的Input信息進(jìn)行初始化。有三種信息來源,一為后臺固定的信息,如HAD00P_H0ME,安裝路徑等;二為按Java內(nèi)部規(guī)則和算法自動分配的信息,例如規(guī)定前5臺機(jī)器安裝HBase,安裝Zookeeper需奇數(shù)個節(jié)點等;三為頁面能夠輸入的信息,如安裝地址,數(shù)據(jù)庫的名稱和地址等。
[0010]3)安裝組件:通過前兩步獲得的信息調(diào)用相應(yīng)shell腳本進(jìn)行組件安裝。[0011 ] 一種基于模板的大數(shù)據(jù)組件WEB部署系統(tǒng),該系統(tǒng)由四個模塊組成,分別是WEB模塊、管理模塊、模板模塊以及腳本模塊。這四個模塊主要被分成兩個部分,一個是WEB端,WEB端包括WEB模塊和管理模塊,另一個是服務(wù)器端,服務(wù)器端包括模板模塊和腳本模塊。系統(tǒng)程序采用JSCH方法成功連接WEB端和服務(wù)器端,并通過Servlet進(jìn)行前后臺交互和信息反饋。
[0012]整體系統(tǒng)流程如下:服務(wù)器啟動tomcat后,本地瀏覽器即通過登錄服務(wù)器地址成功連接到服務(wù)器,此時頁面進(jìn)入WEB模塊,WEB模塊中需要輸入和選擇相關(guān)信息,這些信息通過服務(wù)器中主體程序的寫入模板方法連接到模板模塊,按照信息中具體的內(nèi)容讀寫對應(yīng)的模板,之后,模板模塊會根據(jù)操作需求和依賴關(guān)系分別調(diào)用腳本模塊中的check腳本和instil腳本執(zhí)行相應(yīng)功能,執(zhí)行后的結(jié)果會通過服務(wù)器反饋到WEB模塊,WEB模塊將這些反饋信息整合存入到管理模塊中,方便日后管理和操作。系統(tǒng)傳輸順序為服務(wù)器端-WEB端-WEB模塊-服務(wù)器端-應(yīng)用模塊-腳本模塊-服務(wù)器端-WEB模塊-管理模塊
[0013]各模塊介紹如下:
[0014]WEB模塊主要是用來在WEB界面進(jìn)行信息輸入和選擇功能,包括6部分,也就是安裝過程的6個頁面,每個頁面都包括一個內(nèi)容,分別是添加主機(jī),環(huán)境檢測,選擇組件,配置參數(shù),安裝組件和驗證報告。
[0015]管理模塊有兩個功能,一個是方便查看已安裝組件的詳細(xì)信息,包括安裝日志和安裝結(jié)果,還有一個是用來監(jiān)控各組件的運(yùn)行狀態(tài)和進(jìn)行相應(yīng)啟停操作。
[0016]模板模塊的功能就是相當(dāng)于一個中介,同時存放了WEB信息和各組件信息,并通過將WEB信息進(jìn)行整合后,依次調(diào)用腳本模塊中的腳本,執(zhí)行相應(yīng)功能。
[0017]腳本模塊主要是用來存放環(huán)境檢測的檢測腳本和各組件的安裝腳本,模板模塊會根據(jù)相應(yīng)功能需求調(diào)用對應(yīng)的腳本執(zhí)行,完成對應(yīng)的功能。
[0018]一種基于模板的大數(shù)據(jù)組件WEB部署方法,本方法的核心是應(yīng)用模板和組件模板。
[0019]該方法用到的模板包括兩種類型,一種是應(yīng)用模板,主要用于保存全局信息:腳本存放路徑,需要安裝安裝的具體的組件實例和安裝順序信息;第二種是組件模板,主要用于存放具體組件的版本號,依賴關(guān)系,輸入?yún)?shù)以及具體的安裝步驟。
[0020]1)應(yīng)用模板可包含多個組件實例,包括腳本存放路徑、集群用戶名和密碼、所需安裝組件名稱、端口號以及組件的安裝順序。圖1所示為部分應(yīng)用模板。
[0021]2)組件模板包含一個組件的配置及安裝步驟全局信息:組件名稱、版本號、輸入?yún)?shù)以及該組件與其他組件的依賴關(guān)系。圖2所示為部分組件模板。
[0022]S1將模板模塊和腳本模塊以及主體程序打成war包上傳至服務(wù)器,部署到tomcat中,然后啟動tomcat,并將應(yīng)用模板Input中的srcPath參數(shù)更改為當(dāng)前服務(wù)器存放此war包的位置。
[0023]S2通過本地瀏覽器訪問地址http: //hostIP: 8080//Hadooplnstaller即進(jìn)入到web安裝頁面,進(jìn)行六步安裝步驟。
[0024]S3通過JSCH方法將windows平臺與服務(wù)器進(jìn)行安全連接。
[0025]S3.1加主機(jī)時,需要在頁面輸入安裝組件的集群IP地址以及用戶名和密碼,頁面首先會對輸入的IP進(jìn)行格式檢查,并使用此用戶名和密碼登錄到服務(wù)器驗證是否正確,若登錄進(jìn)去,則會將信息保存到應(yīng)用模板Input方法中的IP,userName,password參數(shù)中,同時將反饋給頁面一個對號信息,即可點擊下一步。
[0026]S3.2環(huán)境檢測包括檢測各IP下的CPU,內(nèi)存,硬盤容量,jdk是否安裝,防火墻是否關(guān)閉,節(jié)點之間是否可以互信內(nèi)容。這時應(yīng)用模板接到web發(fā)來的檢測命令,則會觸發(fā)其下Check方法調(diào)用腳本模塊中checkshe 11下面的checkinf 0.sh腳本,便會在服務(wù)器進(jìn)行檢測,檢測結(jié)果將以對號和錯號的圖案形式返回到web界面中,對于不符合要求的結(jié)果,對其進(jìn)行修復(fù),修復(fù)命令調(diào)用的是checkshe 11下面的instal 1 Jdk.sh,和f ixSupport.sh腳本執(zhí)行相應(yīng)的修復(fù)功能。
[0027]S3.3選擇組件是在頁面進(jìn)行勾選需要安裝的組件名稱,因本系統(tǒng)內(nèi)含五個組件,所以用戶能夠根據(jù)需要進(jìn)行選擇安裝。在選擇好后,服務(wù)器端接到所需安裝的組件名稱后,將觸發(fā)應(yīng)用模板的Control方法,進(jìn)行選擇組件過程,并據(jù)此依次調(diào)用腳本模塊中installshell下面的各組件安裝腳本進(jìn)行依賴關(guān)系判斷,根據(jù)依賴關(guān)系決定安裝的先后順序,并將此順序保存到應(yīng)用模板中。
[0028]S3.4配置參數(shù)主要是針對有些組件安裝過程中需要手動設(shè)置一些參數(shù),比如Hadoop中NameNode和DataNode的節(jié)點選取,Zookeeper需要有奇數(shù)個節(jié)點安裝等要求,這些設(shè)置在頁面輸入后即可通過應(yīng)用模板保存到組件模板中各個組件下的Input方法中。
[0029]S3.5組件安裝過程就是依賴之前應(yīng)用模板中存儲好的安裝順序,進(jìn)到組件模板中找到相應(yīng)的參數(shù)配置,結(jié)合這兩個模板中的信息,依次調(diào)用腳本模塊中installshell下面的各組件安裝腳本,進(jìn)行有序安裝。安裝過程中,頁面會一直返回安裝日志,詳細(xì)記錄每一步的進(jìn)展。installshell主要是各個待安裝組件的安裝腳本,每個腳本都包括安裝的版本信息,依賴關(guān)系,以及安裝的具體步驟。包含的腳本有installHadoop.sh,installHBase.sh, installHive.sh, installKafka.sh, instalIZookeeper.sh,若后期需要增加新的組件,即在installshell里面增加新組件的腳本,在組件模板中寫入需要參數(shù)信息和條件,并在應(yīng)用模板中添加調(diào)用該腳本的方法即可。
[°03°]安裝結(jié)束后,服務(wù)器會首先通過腳本模塊中的verify.sh腳本進(jìn)行安裝驗證,待各節(jié)點上返回正確的進(jìn)程信息后,則會以對號的形式反饋給頁面,安裝報告頁面會顯示已安裝組件名稱,安裝時間,安裝地點以及安裝狀態(tài)信息。
[0031 ]安裝日志和報告會被存儲到服務(wù)器的數(shù)據(jù)庫中,在管理模塊的安裝日志中可進(jìn)行翻閱查看,除此之外,管理模塊還提供了監(jiān)控各組件運(yùn)行狀態(tài)的頁面,能實時監(jiān)控各組件的狀態(tài),及時發(fā)現(xiàn)進(jìn)程宕掉的問題,并提供操作界面,進(jìn)行啟停某個作業(yè),啟停某個進(jìn)程,甚至能夠選擇重新安裝某個組件。
【附圖說明】
[0032]圖1應(yīng)用模板部分截圖。
[0033]圖2組件模板部分截圖。
[0034]圖3模塊結(jié)構(gòu)示意圖。
[0035]圖4安裝流程圖。
【具體實施方式】
[0036]將打包好的Hadoop Instal ler程序(包含編寫好的組件模板腳本),部署到tomcat中,然后啟動tomcat,通過本地瀏覽器訪問地址http://hostIP:8080//Hadooplnstaller即進(jìn)入到安裝頁面,安裝流程包括6個步驟,分別是添加主機(jī)、檢測主機(jī)環(huán)境、選擇可選組件、參數(shù)配置、安裝部署和安裝報告。圖4所示為安裝流程圖。
[0037]1.添加主機(jī):輸入所要添加的主機(jī)的IP地址和賬戶信息,頁面將會動態(tài)檢驗所輸入的信息格式是否正確(避免重復(fù)),如果不符合要求,提示重新輸入;如果符合要求,再輸入主機(jī)的用戶名及密碼,信息將保存到sess1n中去。為后面讀取做準(zhǔn)備。
[0038]2