StreamPark 是否值得一用(上)?
來源:安瑞哥是碼農
早早就聽說了這麼個玩意,也看到有些小夥伴已經用它作為自己的開發工具了。
那麼基於好奇心驅使,我也決定把這個 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),其實這個專案,是今年年初才進入孵化階段的,這樣一來就好解釋了。
為了體驗最新的功能,我下載了它最新的版本2.1.1 (這裡我用的普通伺服器部署,網上很多文章都是基於docker的)。
這裡官網會提供兩個版本,其中區別就是上圖所看到的,基於Scala2.11,跟Scala2.12.
怎麼選?需要貼合你的開發需求,以及部署的Flink、Spark環境,這個你必須要知道,畢竟2.11跟2.12 其實差距還比較大。
1. 開始部署
雖然說部署過程比較簡單,但是一些步驟還是要注意。
修改1:
需要修改配置檔案,因為比較推薦你用MySQL來儲存 streampark 執行過程中的後設資料,所以需要修改conf目錄下的 application.yml 檔案。
將其中預設的 h2 改為 MySQL。
修改2:
既然改為用 MySQL 來儲存後設資料,那麼接下來肯定要配置對應的連線資訊,對吧。
於是,就要修改 config 目錄下的 application-mysql.yml 檔案。
注意,這裡需要先在 MySQL 資料庫建立strempark庫,以及對應的使用者,並將該庫的所有許可權都賦給該使用者。
然後,再執行下面的建表,以及資料載入操作(官網這塊沒有展開說明):
先執行建表:
再執行載入基礎資料:
PS: 這裡需要注意的是,選擇的 MySQL 版本不能太低,比如我剛開始不信邪,用的5.5,結果建表的時候,報錯如下:
會存在系統設定,跟建表語句衝突的情況,後來我老老實實換成了MySQL8,就好了。
另外,一定務必記得,要把對應的MySQL8的驅動包,放到streampark 家目錄的lib子目錄裡。
修改3:
配置完了後設資料的儲存位置,接下來就要確定 strempark 儲存工作資料的位置了,這個儲存工作資料的位置,也叫 workspace。
根據你當前伺服器的配置,找一塊空間比較大的,專門的資料盤,來儲存你的本地資料,以及配置你的hdfs目錄(如果有的話):
2. 啟動服務
根據官網的提示,所有需要修改和準備的地方,都已經準備妥當,那麼接下來是不是可以順利啟動服務了呢?
在啟動前,需要說明一點,一般我建議你養成一個好習慣,那就是不同的服務,用不同的使用者對其授權和啟動,比如這個 strempark 服務,就給它一個專門的使用者,比如就叫 strempark,然後把該服務相關的目錄所有權賦給它:
然後,用 strempark 使用者來啟動服務:
但是,首次啟動會報錯,具體錯誤說需要你設定額外的 JAVA_HOME 變數。
雖然這種問題肯定不難解決,但是呢,如何優雅地搞定它,有時候是比較反映一個人的基礎素養的。
比如,因為這臺伺服器的 JRE 本來就是一個全域性變數,按理說是不需要設定額外的 JAVA_HOME 的,但既然它報錯了,那我們就最好針對當前的使用者,來專門設定這個變數。
具體做法是:vi /home/streampark/.bash_profile:
即時生效:
最後啟動服務,才不會報錯:
養成好的習慣,啟動之後,瞅一眼服務執行的日誌(建議建立統一、規範的日誌目錄),確保執行狀態確實OK:
然後登入web頁面地址:{streampark_server}:10000
3. 使用感受
(PS啊;關於頁面的流式任務配置,篇幅關係,我們在下一篇文章中展開講)
基礎部署部分還算簡單,一般大家應該都可以比較輕鬆的搞定,但是後面的流式任務配置就難說了。
對於後面流式任務的配置和部署,初次體驗的感覺是:不是很好用!
一些配置步驟莫名其妙就報錯了,完了還沒有錯誤提示,只能去後臺日志分析,或者乾脆靠猜。
搗鼓了幾個小時,終於搗鼓出了一個能跑的應用,算基本上摸清了這個玩意的大致玩法。
這裡面有一些隱藏的坑,比如部署 streampark 的機器必須得是 Flink 的客戶端,同時還必須是hadoop的客戶端,且對應的hadoop配置中必須有yan-site.xml檔案(如果你要 Flink on yarn 的話)。
否則你 Flink on yarn 的應用怎麼著都部署不起來,關鍵你還找不到錯誤原因,只能靠自己的經驗悟。
其次,這個使用介面各個功能如何配置,每一項該如何規範填寫,官方文件幾乎是一筆帶過(提供的那幾個影片完全是雞肋),或者乾脆不提,需要部署的人有比較強的運維、填坑水平才能磕磕碰碰把它玩起來。
當然,畢竟是初次使用,現在給它下定義好還是不好,為時尚早,待我這幾天深度體驗一番,再來告訴大家這玩意到底值不值得你去折騰。
我們下篇文章見...
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027827/viewspace-2998584/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【新年福利】2019年值得一用的8款協作工具
- 又一款開源圖示庫 CSS.GG,值得一用CSS
- 低碳投資是否值得期待?
- DataSophon整合StreamPark2.1.5
- MBA視角:Spotify是否值得投資?
- 無協作,不效率,2021年值得一用的4款協作工具
- 如何判斷網校原始碼是否值得使用?原始碼
- 再聊 Blazor,它是否值得你花時間學習Blazor
- go結構體物件是否值得Reset然後複用??Go結構體物件
- python應用情況怎麼樣?是否真的值得學習?Python
- 什麼人適合學習Python?Python是否值得學習?Python
- iOS:一用就上癮的BottomSheetViewiOSView
- 蘋果iPhone XR是否值得入手?iPhoneXR優點與缺點分析蘋果iPhone
- 實時計算既有Flink,為何又推出個StreamPark?
- GitHub 上北大清華? 你值得擁有Github
- StreamPark 2.0.0 重磅釋出,首個 Apache 版本終於來了!Apache
- MacBook Pro 2020出新,13英寸新MacBook Pro是否值得購買?Mac
- linux檢測系統是否被入侵(上)Linux
- 阿里雲彈性裸金屬伺服器特性優勢及是否值得購買?阿里伺服器
- streampark+flink一鍵整庫或多表同步mysql到doris實戰MySql
- iOS:一用就上癮的跑馬燈檢視iOS
- iOS:一用就上癮的刮刮樂檢視iOS
- 用JavaScript檢測使用者是否線上JavaScript
- Apple Arcade 首測:12 款首發遊戲體驗,告訴你是否值得訂閱APP遊戲
- 學完就忘一用就懵,怎麼解決
- oracle之優化一用group by或exists優化distinctOracle優化
- 園子的第一款簡陋滑鼠墊,是否是您值得擁有的周邊
- 第12篇 window上驗證mysql是否安裝成功MySql
- 企業上ERP系統是否是這樣的表情?
- Linux判斷上一個語句是否執行成功Linux
- 2018年Github上值得學習的十個熱門專案Github
- Java是否可以棧上分配物件記憶體? 為什麼?Java物件記憶體
- IE 老提示 是否允許該頁從您的剪貼簿上貼上資訊
- 判斷是否有檔案並設定理性,上傳到cos
- 線上教育開源原始碼的市場前景如何?線上教育風口是否已過?原始碼
- mac上值得推薦的個人財務管理工具CheckBook ProMac
- 有哪些比較好用的線上專案管理軟體值得推薦?專案管理
- 2020年Steam夏季遊戲節值得關注的137款遊戲(上)遊戲