Apache StreamPark流處理極速開發(fā)框架
StreamX 是一個 Apache Flink 極速開發(fā)框架。項目的初衷是 —— 讓 Flink 開發(fā)更簡單。
StreamX 定位是 Flink|Spark 開發(fā)腳手架 + 流批一體大數(shù)據(jù)平臺,項目本身采用 java、scala開發(fā)。前端使用 vuejs、antd design vue,使用 StreamX 開發(fā),可以極大降低學(xué)習(xí)成本和開發(fā)門檻,讓開發(fā)者只用關(guān)心最核心的業(yè)務(wù)。
StreamX 規(guī)范了項目的配置,鼓勵函數(shù)式編程,定義了最佳的編程方式,提供了一系列開箱即用的Connectors,標(biāo)準(zhǔn)化了配置、開發(fā)、測試、部署、監(jiān)控、運維的整個過程,提供scala和java兩套api,其最終目的是打造一個一站式大數(shù)據(jù)平臺,流批一體的解決方案。
Features
- 開發(fā)腳手架
- 多版本Flink支持(1.11,x, 1.12.x, 1.13 )
- 一系列開箱即用的connectors
- 支持項目編譯功能(maven 編譯)
- 在線參數(shù)配置
- 支持
Applicaion模式,Yarn-Per-Job模式啟動 - 快捷的日常操作(任務(wù)
啟動、停止、savepoint,從savepoint恢復(fù)) - 支持火焰圖
- 支持
notebook(在線任務(wù)開發(fā)) - 項目配置和依賴版本化管理
- 支持任務(wù)備份、回滾(配置回滾)
- 在線管理依賴(maven pom)和自定義jar
- 自定義udf、連接器等支持
- Flink SQL WebIDE
- 支持catalog、hive
- 任務(wù)運行失敗發(fā)送告警郵件
- 支持任務(wù)失敗重啟重試
- 從任務(wù)
開發(fā)階段到部署管理全鏈路支持 - ...
項目架構(gòu)如下:
組成部分
Streamx 有三部分組成,分別是streamx-core、streamx-pump 和 streamx-console
streamx-core
streamx-core 定位是一個開發(fā)時框架,關(guān)注編碼開發(fā),規(guī)范了配置文件,按照約定優(yōu)于配置的方式進行開發(fā),提供了一個開發(fā)時 RunTime Content和一系列開箱即用的Connector,擴展了DataStream相關(guān)的方法,融合了DataStream和Flink sql api,簡化繁瑣的操作,聚焦業(yè)務(wù)本身,提高開發(fā)效率和開發(fā)體驗
streamx-pump
pump 是抽水機,水泵的意思,streamx-pump的定位是一個數(shù)據(jù)抽取的組件,類似于flinkx,基于streamx-core中提供的各種connector開發(fā),目的是打造一個方便快捷,開箱即用的大數(shù)據(jù)實時數(shù)據(jù)抽取和遷移組件,并且集成到streamx-console中,解決實時數(shù)據(jù)源獲取問題,目前在規(guī)劃中
streamx-console
streamx-console 是一個綜合實時數(shù)據(jù)平臺,低代碼(Low Code)平臺,可以較好的管理Flink任務(wù),集成了項目編譯、發(fā)布、參數(shù)配置、啟動、savepoint,火焰圖(flame graph),Flink SQL, 監(jiān)控等諸多功能于一體,大大簡化了Flink任務(wù)的日常操作和維護,融合了諸多最佳實踐。舊時王謝堂前燕,飛入尋常百姓家,讓大公司有能力研發(fā)使用的項目,現(xiàn)在人人可以使用, 其最終目標(biāo)是打造成一個實時數(shù)倉,流批一體的一站式大數(shù)據(jù)解決方案
