StreamPark 是否值得一用(上)?

大資料技術前線發表於2023-12-04

來源:安瑞哥是碼農

早早就聽說了這麼個玩意,也看到有些小夥伴已經用它作為自己的開發工具了。


那麼基於好奇心驅使,我也決定把這個 streampark 下載下來試試,一來看看它的部署成本高不高;二來也看下它所宣稱的一體化流式計算平臺,是否對得起它在官網吹的牛逼。


既然自詡是一個能實現低程式碼,完成從配置、開發、測試、部署、監控、運維於一體的智慧化平臺,那我們一會就從這幾個方面著手去考察和驗證,它到底好不好使。

 


0. 準備


一般來說,任何一款新的軟體,想要其能正常執行起來,必須要滿足一定的環境要求,對於 streampark 來說,它需要你部署的機器要滿足以下要求:


1. 必須是Linux(貌似版本不限),目前Windows 不支援;


2. JDK1.8及以上環境;


3. 只能支援 Flink1.12 以上版本;


4. 儲存 streampark 的後設資料,如果用MySQL的話,版本必須不低於5.6(驗證過5.5,建表確實會報錯);


5. 如果用 Flink on yarn 的話,必須得有 hdfs 以及 yarn 環境。


確認完上述基礎環境依賴之後,接下來就是要下載 streampark。


既然是一款軟體,那麼第一步就是要先把它下載下來,下載地址為:。


這款軟體比較有意思的地方在於,人家一上來,就是2.0的版本(半天沒有找到更早的版本了),難怪當我下載到它最新的2.1.1版本時還在疑惑,怎麼都2.x了,還在孵化(incubating)呢,這麼難產的嗎。


仔細一看,原來是人家一開始把調子起高了(上來就2.0),其實這個專案,是今年年初才進入孵化階段的,這樣一來就好解釋了。


StreamPark 是否值得一用(上)?

為了體驗最新的功能,我下載了它最新的版本2.1.1 (這裡我用的普通伺服器部署,網上很多文章都是基於docker的)。


StreamPark 是否值得一用(上)?

這裡官網會提供兩個版本,其中區別就是上圖所看到的,基於Scala2.11,跟Scala2.12.


怎麼選?需要貼合你的開發需求,以及部署的Flink、Spark環境,這個你必須要知道,畢竟2.11跟2.12 其實差距還比較大。



1. 開始部署


雖然說部署過程比較簡單,但是一些步驟還是要注意。


修改1:


需要修改配置檔案,因為比較推薦你用MySQL來儲存 streampark 執行過程中的後設資料,所以需要修改conf目錄下的 application.yml 檔案。


StreamPark 是否值得一用(上)?

將其中預設的 h2 改為 MySQL。


修改2:


既然改為用 MySQL 來儲存後設資料,那麼接下來肯定要配置對應的連線資訊,對吧。


於是,就要修改 config 目錄下的 application-mysql.yml 檔案。


StreamPark 是否值得一用(上)?

注意,這裡需要先在 MySQL 資料庫建立strempark庫,以及對應的使用者,並將該庫的所有許可權都賦給該使用者


然後,再執行下面的建表,以及資料載入操作(官網這塊沒有展開說明):


先執行建表:


StreamPark 是否值得一用(上)?


再執行載入基礎資料:


StreamPark 是否值得一用(上)?


PS: 這裡需要注意的是,選擇的 MySQL 版本不能太低,比如我剛開始不信邪,用的5.5,結果建表的時候,報錯如下:


StreamPark 是否值得一用(上)?


會存在系統設定,跟建表語句衝突的情況,後來我老老實實換成了MySQL8,就好了。


另外,一定務必記得,要把對應的MySQL8的驅動包,放到streampark 家目錄的lib子目錄裡


StreamPark 是否值得一用(上)?


修改3:


配置完了後設資料的儲存位置,接下來就要確定 strempark 儲存工作資料的位置了,這個儲存工作資料的位置,也叫 workspace。


根據你當前伺服器的配置,找一塊空間比較大的,專門的資料盤,來儲存你的本地資料,以及配置你的hdfs目錄(如果有的話):


StreamPark 是否值得一用(上)?



2. 啟動服務


根據官網的提示,所有需要修改和準備的地方,都已經準備妥當,那麼接下來是不是可以順利啟動服務了呢?


在啟動前,需要說明一點,一般我建議你養成一個好習慣,那就是不同的服務,用不同的使用者對其授權和啟動,比如這個 strempark  服務,就給一個專門的使用者,比如就叫 strempark,然後把該服務相關的目錄所有權賦給它:


StreamPark 是否值得一用(上)?

然後,用 strempark 使用者來啟動服務:


StreamPark 是否值得一用(上)?

但是,首次啟動會報錯,具體錯誤說需要你設定額外的 JAVA_HOME 變數


雖然這種問題肯定不難解決,但是呢,如何優雅地搞定它,有時候是比較反映一個人的基礎素養的。


比如,因為這臺伺服器的 JRE 本來就是一個全域性變數,按理說是不需要設定額外的 JAVA_HOME 的,但既然它報錯了,那我們就最好針對當前的使用者,來專門設定這個變數。


具體做法是:vi /home/streampark/.bash_profile:


StreamPark 是否值得一用(上)?

即時生效:


StreamPark 是否值得一用(上)?

最後啟動服務,才不會報錯:


StreamPark 是否值得一用(上)?

養成好的習慣,啟動之後,瞅一眼服務執行的日誌(建議建立統一、規範的日誌目錄),確保執行狀態確實OK:


StreamPark 是否值得一用(上)?


然後登入web頁面地址:{streampark_server}:10000



3. 使用感受


(PS啊;關於頁面的流式任務配置,篇幅關係,我們在下一篇文章中展開講)


基礎部署部分還算簡單,一般大家應該都可以比較輕鬆的搞定,但是後面的流式任務配置就難說了。


對於後面流式任務的配置和部署,初次體驗的感覺是:不是很好用!


一些配置步驟莫名其妙就報錯了,完了還沒有錯誤提示,只能去後臺日志分析,或者乾脆靠猜。


搗鼓了幾個小時,終於搗鼓出了一個能跑的應用,算基本上摸清了這個玩意的大致玩法。


StreamPark 是否值得一用(上)?


這裡面有一些隱藏的坑,比如部署 streampark 的機器必須得是 Flink 的客戶端,同時還必須是hadoop的客戶端,且對應的hadoop配置中必須有yan-site.xml檔案(如果你要 Flink on yarn 的話)。


否則你 Flink on yarn 的應用怎麼著都部署不起來,關鍵你還找不到錯誤原因,只能靠自己的經驗悟。


其次,這個使用介面各個功能如何配置,每一項該如何規範填寫,官方文件幾乎是一筆帶過(提供的那幾個影片完全是雞肋),或者乾脆不提,需要部署的人有比較強的運維、填坑水平才能磕磕碰碰把它玩起來。


當然,畢竟是初次使用,現在給它下定義好還是不好,為時尚早,待我這幾天深度體驗一番,再來告訴大家這玩意到底值不值得你去折騰。


我們下篇文章見...


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027827/viewspace-2998584/,如需轉載,請註明出處,否則將追究法律責任。

相關文章