本發(fā)明涉及計算機領(lǐng)域,尤其涉及一種k-ux3.0操作系統(tǒng)上搭建storm分布式應(yīng)用集群的系統(tǒng)及方法。
背景技術(shù):
數(shù)據(jù)的價值隨著時間的流逝而降低,所以事件出現(xiàn)后必須盡快地對它們進(jìn)行處理,最好數(shù)據(jù)出現(xiàn)時便立刻對其進(jìn)行處理,發(fā)生一個事件進(jìn)行一次處理,而不是緩存起來成一批處理。storm技術(shù)大大簡化了并行實時數(shù)據(jù)處理,可以使開發(fā)人員可以快速地搭建一套健壯、易用的實時流處理框架,配合sql產(chǎn)品、nosql產(chǎn)品或者mapreduce計算平臺,就可以低成本地做出很多以前很難想象的實時產(chǎn)品。
k-ux3.0操作系統(tǒng)是通過unix03認(rèn)證的主機操作系統(tǒng),k-ux操作系統(tǒng)具有廣泛的兼容性,基于x86架構(gòu),64路服務(wù)器,具有較高的數(shù)據(jù)處理能力。但是,如何將storm技術(shù)搭建在k-ux3.0操作系統(tǒng)上是當(dāng)前丞待解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
為了克服上述現(xiàn)有技術(shù)中的不足,本發(fā)明提供一種搭建storm分布式應(yīng)用集群系統(tǒng),包括:終端訪問層、應(yīng)用層和數(shù)據(jù)層;終端訪問層與應(yīng)用層通過網(wǎng)絡(luò)進(jìn)行連接通信,終端訪問層通過ssh協(xié)議遠(yuǎn)程連接操作系統(tǒng)以及遠(yuǎn)程控制storm應(yīng)用平臺;應(yīng)用層通過mq、socket通信、前端系統(tǒng)業(yè)務(wù)數(shù)據(jù)獲取api,或者log監(jiān)控,并從數(shù)據(jù)層獲取數(shù)據(jù),經(jīng)過storm實時處理寫入數(shù)據(jù);數(shù)據(jù)層包括:數(shù)據(jù)庫。
優(yōu)選地,終端訪問層包括多個終端客戶機,每個終端客戶機通過vpn網(wǎng)絡(luò)訪問應(yīng)用層,每個終端客戶機通過應(yīng)用層連接集群應(yīng)用服務(wù)器,遠(yuǎn)程管理strom平臺,查看集群服務(wù)器的部署方式、主節(jié)點和工作節(jié)點的分配情況、運行狀態(tài)、處理的拓?fù)鋽?shù)據(jù)、任務(wù)運行相關(guān)日志,同時終端客戶機針對某一拓?fù)淙蝿?wù)進(jìn)行訪問、數(shù)據(jù)處理、用戶注冊操作,終端客戶機通過遠(yuǎn)程管理strom平臺進(jìn)行遠(yuǎn)程控制。
優(yōu)選地,應(yīng)用層由n+1個節(jié)點組成,其中用一個節(jié)點部署在nimbus服務(wù)器上,n個節(jié)點部署在supervisor服務(wù)器上,同時所有節(jié)點上部署zookeeper集群,實現(xiàn)對storm集群的一致性管理,增強storm集群的可靠性和可伸縮性;數(shù)據(jù)層包含數(shù)據(jù)接入層和數(shù)據(jù)落地層兩部分,數(shù)據(jù)接入層采用mq、或socket通信、或前端系統(tǒng)業(yè)務(wù)數(shù)據(jù),獲取api或者log監(jiān)控方式的源數(shù)據(jù)流,數(shù)據(jù)落地層采用hdfs、或mysql的數(shù)據(jù)存儲設(shè)備。
優(yōu)選地,應(yīng)用層所有節(jié)點部署在zookeeper集群,用于記錄storm集群服務(wù)器的運行狀態(tài)、協(xié)調(diào)數(shù)據(jù)存儲,nimbus服務(wù)器通過zookeeper協(xié)調(diào)supervisor服務(wù)器,進(jìn)行代碼分發(fā)任務(wù)分配,實現(xiàn)對storm集群的一致性管理,增強storm集群的可靠性和可伸縮性。
一種k-ux3.0操作系統(tǒng)上搭建storm分布式應(yīng)用集群的方法,方法包括:
搭建zookeeper集群;
在集群內(nèi)的每臺服務(wù)器上安裝java和python依賴;
搭建storm集群。
優(yōu)選地,搭建zookeeper集群步驟包括:
在每臺服務(wù)器上安裝zookeeper,創(chuàng)建zookeeper的data目錄和log目錄;
在data目錄下建立zk集群的myid文件,編輯myid文件,并在對應(yīng)的ip的服務(wù)器上輸入對應(yīng)的編號;
將conf目錄下的zoo_sample.cfg文件拷貝一份,命名為為zoo.cfg,修改zoo.cfg配置文件;
將zk的bin目錄路徑加入環(huán)境變量,使其生效。
優(yōu)選地,在集群內(nèi)的每臺服務(wù)器上安裝java和python依賴步驟包括:
集群內(nèi)每臺服務(wù)器上安裝java和python依賴,將jdk和python文件分別解壓到相應(yīng)目錄,并且配置環(huán)境變量,將bin目錄加載到path中,使其生效。
優(yōu)選地,搭建storm集群步驟包括:
nimbus服務(wù)器和supervisor服務(wù)器上分別安裝storm,創(chuàng)建一個storm的本地數(shù)據(jù)目錄,將storm的bin目錄加入系統(tǒng)路徑,使其生效;
分別配置nimbus服務(wù)器和supervisor服務(wù)器集群上的conf/storm.yaml文件。
從以上技術(shù)方案可以看出,本發(fā)明具有以下優(yōu)點:
搭建storm分布式應(yīng)用集群系統(tǒng)通過ssh標(biāo)準(zhǔn)協(xié)議連接k-ux操作系統(tǒng),64路服務(wù)器的n+1個節(jié)點上部署storm集群,包括終端訪問層、應(yīng)用層和數(shù)據(jù)層,三層通過局域網(wǎng)進(jìn)行連接通信。終端訪問層與應(yīng)用層通過局域網(wǎng)進(jìn)行連接通信,通過ssh協(xié)議遠(yuǎn)程連接操作系統(tǒng),遠(yuǎn)程控制storm應(yīng)用平臺。應(yīng)用層通過mq、socket通信、前端系統(tǒng)業(yè)務(wù)數(shù)據(jù)獲取api或者log監(jiān)控等方式從數(shù)據(jù)接入層獲取數(shù)據(jù),經(jīng)過storm實時處理系統(tǒng)處理之后寫入數(shù)據(jù)落地層,數(shù)據(jù)接入層可以是數(shù)據(jù)庫,也可以是其他存儲或應(yīng)用。
通過k-ux3.0操作系統(tǒng)比linux系統(tǒng)安全可靠,能夠提升storm集群的安全性和穩(wěn)定性。通過在64路服務(wù)器的最大支持64個節(jié)點,在此平臺上搭建storm集群可以節(jié)省更多空間。k-ux操作系統(tǒng)可以通過bmc管理軟件統(tǒng)一管理,提高提供整個storm集群的管理能力。
附圖說明
為了更清楚地說明本發(fā)明的技術(shù)方案,下面將對描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為k-ux3.0操作系統(tǒng)上搭建storm分布式應(yīng)用集群的系統(tǒng)的整體示意圖;
圖2為k-ux3.0操作系統(tǒng)上搭建storm分布式應(yīng)用集群的系統(tǒng)集群結(jié)構(gòu)圖;
圖3為k-ux3.0操作系統(tǒng)上搭建storm分布式應(yīng)用集群的方法流程圖。
具體實施方式
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將運用具體的實施例及附圖,對本發(fā)明保護(hù)的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本發(fā)明一部分實施例,而非全部的實施例。基于本專利中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本專利保護(hù)的范圍。
本實施例提供一種k-ux3.0操作系統(tǒng)上搭建storm分布式應(yīng)用集群的系統(tǒng),如圖1,圖2所示,包括:終端訪問層1、應(yīng)用層2和數(shù)據(jù)層3;終端訪問層1與應(yīng)用層2通過網(wǎng)絡(luò)進(jìn)行連接通信,終端訪問層1通過ssh協(xié)議遠(yuǎn)程連接操作系統(tǒng)以及遠(yuǎn)程控制storm應(yīng)用平臺;應(yīng)用層2通過mq、socket通信、前端系統(tǒng)業(yè)務(wù)數(shù)據(jù)通信,獲取api,或者log監(jiān)控,并通過storm實時對數(shù)據(jù)層3進(jìn)行數(shù)據(jù)處理;數(shù)據(jù)處理方式包括:數(shù)據(jù)寫入,數(shù)據(jù)修改,數(shù)據(jù)編輯,數(shù)據(jù)追加編輯,數(shù)據(jù)刪除等等。數(shù)據(jù)層包括:數(shù)據(jù)庫。
本實施例中,終端訪問層包括多個終端客戶機,每個終端客戶機通過vpn網(wǎng)絡(luò)訪問應(yīng)用層,每個終端客戶機通過應(yīng)用層連接集群應(yīng)用服務(wù)器,遠(yuǎn)程管理strom平臺,查看集群服務(wù)器的部署方式、主節(jié)點和工作節(jié)點的分配情況、運行狀態(tài)、處理的拓?fù)鋽?shù)據(jù)、任務(wù)運行相關(guān)日志,同時終端客戶機針對某一拓?fù)淙蝿?wù)進(jìn)行訪問、數(shù)據(jù)處理、用戶注冊操作,終端客戶機通過遠(yuǎn)程管理strom平臺進(jìn)行遠(yuǎn)程控制。
應(yīng)用層由n+1個節(jié)點組成,其中用一個節(jié)點部署在nimbus服務(wù)器上,n個節(jié)點部署在supervisor服務(wù)器上,同時所有節(jié)點上部署zookeeper集群,實現(xiàn)對storm集群的一致性管理,增強storm集群的可靠性和可伸縮性;數(shù)據(jù)層包含數(shù)據(jù)接入層和數(shù)據(jù)落地層兩部分,數(shù)據(jù)接入層采用mq、或socket通信、或前端系統(tǒng)業(yè)務(wù)數(shù)據(jù),獲取api或者log監(jiān)控方式的源數(shù)據(jù)流,數(shù)據(jù)落地層采用hdfs、或mysql的數(shù)據(jù)存儲設(shè)備。
應(yīng)用層所有節(jié)點部署在zookeeper集群,用于記錄storm集群服務(wù)器的運行狀態(tài)、協(xié)調(diào)數(shù)據(jù)存儲,nimbus服務(wù)器通過zookeeper協(xié)調(diào)supervisor服務(wù)器,進(jìn)行代碼分發(fā)任務(wù)分配,實現(xiàn)對storm集群的一致性管理,增強storm集群的可靠性和可伸縮性。
本發(fā)明還提供一種k-ux3.0操作系統(tǒng)上搭建storm分布式應(yīng)用集群的方法,如圖3所示,方法包括:
s1:搭建zookeeper集群;
s2:在集群內(nèi)的每臺服務(wù)器上安裝java和python依賴;
s3:搭建storm集群。
具體的,搭建zookeeper集群步驟包括:
在每臺服務(wù)器上安裝zookeeper,創(chuàng)建zookeeper的data目錄和log目錄;
在data目錄下建立zk集群的myid文件,編輯myid文件,并在對應(yīng)的ip的服務(wù)器上輸入對應(yīng)的編號;
將conf目錄下的zoo_sample.cfg文件拷貝一份,命名為為zoo.cfg,修改zoo.cfg配置文件;
將zk的bin目錄路徑加入環(huán)境變量,使其生效。
在集群內(nèi)的每臺服務(wù)器上安裝java和python依賴步驟包括:
集群內(nèi)每臺服務(wù)器上安裝java和python依賴,將jdk和python文件分別解壓到相應(yīng)目錄,并且配置環(huán)境變量,將bin目錄加載到path中,使其生效。
搭建storm集群步驟包括:
nimbus服務(wù)器和supervisor服務(wù)器上分別安裝storm,創(chuàng)建一個storm的本地數(shù)據(jù)目錄,將storm的bin目錄加入系統(tǒng)路徑,使其生效;
分別配置nimbus服務(wù)器和supervisor服務(wù)器集群上的conf/storm.yaml文件。
結(jié)合一下實例對本發(fā)明做進(jìn)一步說明。
實例:數(shù)組存放每個人說的話,功能:
隨機獲取某個人說的話;將獲取到的話末尾添加感嘆號!將添加完感嘆號!
的話打印出來。
實施方式為:
1)進(jìn)入實例根目錄,執(zhí)行mvnclean,將原先生成的項目target目錄刪掉。
2)在本地repository中打包jar:mvninstall,生成的目錄為pom.xml中的groupid格式。
3)將
c:\users\zhaobj\.m2\repository\storm\storm-samples1\0.0.1-snapshot目錄下的storm-samples1-0.0.1-snapshot-jar-with-dependencies.jar拷到nimbus服務(wù)器上bin目錄下。
4)部署topology
nimbus服務(wù)器storm的bin目錄下執(zhí)行如下命令:
./stormjarstorm-samples1-0.0.1-snapshot-jar-with-dependencies.jarstorm.storm_samples1.exclaimbasictopoexclaimbasictopo。
5)查看結(jié)果
兩種方式:一、查看stormui。二、storm的bin目錄下運行./stormlist。
6)關(guān)閉topology
兩種方式:一、stormui上面點選要關(guān)閉的topology,如exclaimbasictopo,然后在新頁面的topologyactions中選kill。二、運行./stormkillexclaimbasictopo。
本說明書中各個實施例采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參考即可。
對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。