一種基於Storm的任務可視化上傳及啟動方法與流程
2023-04-29 14:09:41 1
本發明涉及計算機軟體應用技術領域,具體涉及一種基於Storm的任務可視化上傳及啟動方法,具體說是一種能夠讓Storm中的任務上傳及啟動實現可視化操作,在完成傳統的命令行執行相關操作的同時,能給用戶帶來更友好的用戶體驗。
背景技術:
當今世界,公司的日常運營經常會生成TB級別的數據。數據來源囊括了網際網路裝置可以捕獲的任何類型數據,網站、社交媒體、交易型商業數據以及其它商業環境中創建的數據。考慮到數據的生成量,實時處理成為了許多機構需要面對的首要挑戰。我們經常用的一個非常有效的開源實時計算工具就是Storm,通常被比作「實時的Hadoop」。然而Storm遠比Hadoop來的簡單,因為用它處理大數據不會帶來新老技術的交替,而它對數據的實時處理特性更是Hadoop辦不到的。
Storm 是由專業數據分析公司 BackType 開發的一個 分布式 實時數據處理軟體,可以簡單、高效、可靠地處理大量的數據流。它會把工作任務委託給不同類型的組件,每個組件負責處理一項簡單特定的任務。Topology是Storm 中運行的一個實時應用程式,因為各個組件間的消息流動形成邏輯上的一個拓撲結構,一個 Topology 是 Spouts 和 Bolts 組成的圖狀結構。
原生Storm 管理頁面只能提供Topology的查看功能,用戶無法完成上傳及啟動任務操作。用戶僅能通過命令行或API的形式完成任務的相關操作,增大了用戶使用Storm的難度。
技術實現要素:
本發明要解決的技術問題是:本發明針對以上問題,提供一種基於Storm的任務可視化上傳及啟動方法。
本發明所採用的技術方案為:
一種基於Storm的任務可視化上傳及啟動方法,所述方法基於B/S結構,以網站的形式展現其功能,通過服務端和客戶端使用Swift、Shell、JavaScript技術完成Storm中的topology的可視化上傳及啟動,其中:
服務端:通過Swift技術完成Storm任務的上傳,採用Shell腳本語言作為後臺邏輯處理語言,完成任務啟動;
客戶端:採用JavaScript技術完成Storm任務的可視化上傳及啟動操作;
整個界面清晰美觀,操作簡單,方便用戶使用。
所述方法基於一種彈性伸縮的Storm集群模式,該模式通過Zookeeper管理Storm,完成集群搭建,集群由三類節點組組成,其中:
一類節點組安裝Zookeeper、Nimbus、HealthMonitor三種組件,完成Storm集群的master節點建立,此節點組僅需一臺虛機,完成集群監控管理功能即可;
另一類節點組安裝Zookeeper、Supervisor兩種組件,實現流式計算服務功能;
最後一類節點組為彈性升級而設計,僅安裝Supervisor組件,實時加入集群。
所述方法實施步驟如下:
服務端:採用Shell語言完成任務的下載及啟動,並對任務包進行檢測,將檢測結果返回給前臺;
客戶端:通過Javascript技術實現頁面展現,調用Swift實現任務包的上傳;接收後臺對任務包的檢測結果,並進行可視化展現,具體步驟如下:
步驟1,通過Javascript技術實現上傳頁面展現,支持zip,war,jar三種任務包格式,用戶填寫主類路徑後,調用Swift實現任務包的上傳;
步驟2,後臺使用Shell腳本語言進行邏輯處理,先下載前臺上傳的任務包並命名,調用Storm命令完成任務啟動並檢測,對檢測結果分析,將失敗信息詳情返回前臺;
步驟3,前臺通過Javascript接收後臺傳回的啟動信息數據,並可視化展現。
本發明的有益效果為:
本發明能很好的解決C/S結構的缺點,客戶端只需要安裝有WEB瀏覽器即可,維護成本幾乎為零,基於瀏覽器,友好的UI體驗,無需安裝軟體,可隨時隨地使用,更新功能只需要更新服務端程序即可,客戶總能使用應用的當前最新版本,無須手動升級,由於數據持久儲存在雲端,無須擔心丟失,極具推廣價值。
附圖說明
圖1為本發明Storm集群結構示意圖。
具體實施方式
下面根據說明書附圖,結合具體實施方式對本發明進一步說明:
實施例1:
一種基於Storm的任務可視化上傳及啟動方法,所述方法基於B/S結構,以網站的形式展現其功能,通過服務端和客戶端使用Swift、Shell、JavaScript技術完成Storm中的topology的可視化上傳及啟動,其中:
服務端:通過Swift技術完成Storm任務的上傳,採用Shell腳本語言作為後臺邏輯處理語言,完成任務啟動;
客戶端:採用JavaScript技術完成Storm任務的可視化上傳及啟動操作;
整個界面清晰美觀,操作簡單,方便用戶使用。
實施例2
如圖1所示,在實施例1的基礎上,本實施例所述方法基於一種彈性伸縮的Storm集群模式,該模式通過Zookeeper管理Storm,完成集群搭建,集群由三類節點組組成,其中:
一類節點組安裝Zookeeper、Nimbus、HealthMonitor三種組件,完成Storm集群的master節點建立,此節點組僅需一臺虛機,完成集群監控管理功能即可;
另一類節點組安裝Zookeeper、Supervisor兩種組件,實現流式計算服務功能;
最後一類節點組為彈性升級而設計,僅安裝Supervisor組件,實時加入集群。
實施例3
在實施例2的基礎上,本實施例所述方法實施步驟如下:
服務端:採用Shell語言完成任務的下載及啟動,並對任務包進行檢測,將檢測結果返回給前臺;
客戶端:通過Javascript技術實現頁面展現,調用Swift實現任務包的上傳;接收後臺對任務包的檢測結果,並進行可視化展現,具體步驟如下:
步驟1,通過Javascript技術實現上傳頁面展現,支持zip,war,jar三種任務包格式,用戶填寫主類路徑後,調用Swift實現任務包的上傳;
步驟2,後臺使用Shell腳本語言進行邏輯處理,先下載前臺上傳的任務包並命名,調用Storm命令完成任務啟動並檢測,對檢測結果分析,將失敗信息詳情返回前臺;
步驟3,前臺通過Javascript接收後臺傳回的啟動信息數據,並可視化展現。
所述Shell腳本關鍵代碼如下:
wget -o $jarname $2
newjarname=`echo "$jarname".1`
/opt/apache-storm-0.10.0/bin/storm jar /root/service/package/coms/Nimbus/action/$newjarname $3 $4 >startlog 2>&1
grep -q "Error: Could not find or load main class" startlog && abnormal1=false || abnormal1=true
grep -q "already exists" startlog && abnormal2=false || abnormal2=true
grep -v "b.s.u.Utils" startlog|sed 's/"//g'|sed 's/\n\r//g' >errlog
grep -q "Exception" errlog && abnormal3=false || abnormal3=true
msg=`cat errlog`
if [ $abnormal1 = false ]
then
fi
if [ $abnormal2 = false ]
then
fi
if [ $abnormal3 = false ]
then
fi
實施方式僅用於說明本發明,而並非對本發明的限制,有關技術領域的普通技術人員,在不脫離本發明的精神和範圍的情況下,還可以做出各種變化和變型,因此所有等同的技術方案也屬於本發明的範疇,本發明的專利保護範圍應由權利要求限定。