首頁>技術>

原始碼獲取請先轉發,關注後私信:“spark” 即可免費獲取

一個完善的Spark Streaming二次封裝開源框架,包含:實時流任務排程、kafka偏移量管理,web後臺管理,web api啟動、停止spark streaming,宕機告警、自動重啟等等功能支援,使用者只需要關心業務程式碼,無需關注繁瑣的技術細節,大大提高實時流開發效率和難度(附demo)。

Spark Streaming Framework簡稱SSF(一個完善的Spark Streaming二次封裝開源框架,包含:實時流任務排程、kafka偏移量管理,web後臺管理,web api啟動、停止spark streaming,宕機告警、自動重啟等等功能支援,使用者只需要關心業務程式碼,無需關注繁瑣的技術細節,大大提高實時流開發效率和難度。)專案介紹

基於Spark Streaming的大資料實時流計算平臺和框架(包括:排程平臺,開發框架,開發demo),並且是基於執行在yarn模式執行的spark streaming

大資料實時流計算框架Spark Streaming是比較流程的框架,但是目前很少有針對Spark Streaming封裝的開源平臺專案,本專案是基於Spark Streaming + Springboot開發的一套完成的開發和排程平臺,為了降低對Spark Streaming使用難度(如:介面化提交任務,優雅關閉程式,kafka管理偏移量,監控告警,自動復活重啟等),該專案在企業內部穩定執行超過一年,現將整套程式碼開源,企業或者個人使用這個框架可以降低開發spark streaming的難度,使用者可是甚至不用關心怎麼讀取kafka資料,管理偏移量,spark streaming的程式如何啟動,停止,把目前遇到的坑都給解決了,只需要編寫實時流計算的業務程式碼就可以了(只要寫java/scala的業務程式碼或者運算元即可)。希望對大家有幫助。本人精力有限,希望可以認識更多喜歡Spark Streaming的朋友,一起維護該專案。主要分為3個專案,均是用idea開發的。

開發工具使用的是Idea,hdfs,spark,hbase,livy等元件可以根據自己叢集的版本進行修改pom檔案。

platform:web ui 後臺管理工具,主要負責spark streaming任務提交,排程、監控,啟停,job管理,引數設定的等等,這個要打包成war檔案,部署在tomcat中。framework:開發框架,很多功能都封裝在這個jar包中,大部分情況下這個裡面的程式碼是不需要修改的,只需要用maven install到本地倉庫即可,spark streaming中程式碼不需要再管理kafka偏移量,讀取指定kafka的topic,和一些連線池工具類等等。bigdata:用來開發實時流業務程式碼的專案骨架,你程式碼都是在這個骨架中開發(裡面有demo)。

spark streaming開發業務邏輯demo程式碼參考

java:bigdata.java.spark.streaming.task.datasynchro.DataSynchroStreamingscala:bigdata.scala.spark.streaming.task.testscalaapp.ScalaDemo功能介紹

語言:支援java/scala

功能:

依賴管理:程式打包時jar/config是不需要講依賴包打進去的,可以在platform中上傳依賴的jar/config(將會儲存在hdfs),應用程式啟動時,會自動通過livy載入jar/config的引數進行提交。Job版本管理:每當你的業務程式碼,spark streaming邏輯有變更時,上傳最新的job包,歷史的版本也可以檢視到和選擇執行歷史版本。程式啟動:通過在platform後臺可以啟動任務。程式停止:通過platform後臺可以停止任務;(停止包括2種,一種是普通的停止,這種是spark streaming優雅關閉,一種是強殺,這種是使用yarn命令進行強殺app)宕機自動重啟:當你提交的spark streaming程式被人殺了,或者應用程式本身的問題掛了,platform會監控這個任務,自動重啟,一個任務每天最多重啟3次。宕機告警簡訊:spark streaming程式掛了,或者被殺了,會有簡訊提醒,後臺在建立使用者是配置手機號碼,傳送簡訊的api需要自己實現。指定佇列執行:指定yarn佇列執行你的app。指定引數執行:app啟動時需要讀取指定的args引數是可以在platform中配置。資料反壓管理:spark streaming的反壓可以在platform建立任務時在args中配置,如果不配置將讀取config的預設值(100)Elasticsearch連線池:已經實現es連線池,只需要修改配置檔案指定引數即可。Hbase連線池:已經實現hbase連線池,只需要修改配置檔案指定引數即可。Mysql連線池:已經實現Mysql連線池,只需要修改配置檔案指定引數即可。Oracle連線池:已經實現oracle連線池,只需要修改配置檔案指定引數即可。Redis連線池:已經實現redis連線池,只需要修改配置檔案指定引數即可。Kafka生產者連線池:已經實現Kafka連線池,只需要修改配置檔案指定引數即可。資料處理統計情況:支援檢視kafka的offset消費情況,剩餘多少資料沒有消費。資料積壓告警:在建立任務時可以指定積壓批次的數量就進行簡訊告警。kafka偏移量管理:可在platform中指定offset從特定位置進行消費資料。統計:通過圖示的方式顯示最近7天app消費和kafka生成的資料情況。log下載:通過呼叫ssh,可以下載Livy和Yarn的執行日誌。Web api功能:使用http請求啟動,停止,強殺,獲取狀態來排程你的app程式。部署

參考:Spark-Streaming-Framework/SSF/部署相關/部署指南.txt 或者加群諮詢.QQ交流群:858966066

介面截圖:

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 音訊秒開技術分析