樹莓派3B搭建Flink叢集
今天的實戰是用兩臺樹莓派3B組建Flink1.7叢集環境,模式是獨立叢集(Cluster Standalone);
操作步驟
- 準備作業系統;
- 安裝JDK;
- 配置host;
- 安裝Flink1.7;
- 配置引數;
- 設定兩臺樹莓派相互SSH免密碼登入;
- 啟動Flink叢集環境;
- 部署一個Flink應用,驗證環境是否正常;
樹莓派作業系統
兩臺樹莓派的作業系統都是64位Debian,詳細的安裝步驟請參考《樹莓派3B安裝64位作業系統(樹莓派無需連線顯示器鍵盤滑鼠)》;
安裝JDK
安裝JDK的操作步驟在《樹莓派3B安裝64位作業系統(樹莓派無需連線顯示器鍵盤滑鼠)》
安裝Flink1.7
安裝Flink的操作在兩臺樹莓派上都要做,操作步驟一模一樣,如下:
-
在Flink官網下載,地址是:https://flink.apache.org/downloads.html
-
如下圖,選擇紅框中的版本:
-
下載的Flink安裝包檔案是flink-1.7.0-bin-hadoop28-scala_2.11.tgz,放在此位置:/usr/local/work;
-
在/usr/local/work目錄下執行命令tar -zxvf flink-1.7.0-bin-hadoop28-scala_2.11.tgz
機器情況
兩臺樹莓派3B的IP地址、hostname等資訊如下列表所示:
IP地址 | hostname | 身份 |
---|---|---|
192.168.1.102 | dubhe | 叢集的master,即job節點 |
192.168.1.104 | merak | 叢集的slave,即task節點 |
配置
注意,接下來的四步配置,請在dubhe、merak這兩臺機器上各執行一次,操作的步驟內容一模一樣:
- 開啟/etc/hosts檔案,增加以下兩行(請按照您的機器IP情況來寫):
192.168.1.102 dubhe
192.168.1.104 merak
- 開啟檔案/usr/local/work/flink-1.7.0/conf/flink-conf.yaml,一共修改了以下四個配置:
jobmanager.rpc.address: dubhe
jobmanager.heap.size: 512m
taskmanager.heap.size: 512m
taskmanager.numberOfTaskSlots: 2
jobmanager.rpc.address是master的地址,jobmanager.heap.size是jobmanager的堆上限,taskmanager.heap.size是taskmanager的堆上限,taskmanager.numberOfTaskSlots是taskmanager上的slot數量;
- 開啟檔案/usr/local/work/flink-1.7.0/conf/masters,裡面只保留以下這一行內容,表示dubhe做master:
dubhe:8081
- 開啟檔案/usr/local/work/flink-1.7.0/conf/slaves,裡面只保留以下這一行內容,表示merak做slave:
merak
至此,配置完成,可以啟動叢集了;
啟動叢集
- 在dubhe執行以下命令即可啟動整個叢集:
/usr/local/work/flink-1.7.0/bin/start-cluster.sh
- 控制檯提示輸入merak的root賬號密碼,輸入並回車,啟動完成:
[email protected]:~# /usr/local/work/flink-1.7.0/bin/start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host dubhe.
[email protected]'s password:
Starting taskexecutor daemon on host merak.
- 在瀏覽器輸入地址:http://192.168.1.102:8081,可以看到該叢集環境的web頁面,如下圖所示:
至此,叢集環境的搭建和啟動都已完成,接下來就是測試和驗證了;
配置SSH免密碼登入(可選步驟)
啟動叢集時要求輸入merak的密碼,略有些麻煩,另外用stop-cluster.sh停止叢集時也要輸入merak的密碼,因此推薦您配置這兩臺機器的SSH免密碼登入,具體操作步驟可以參考文章《Docker下,實現多臺機器之間相互SSH免密碼登入》,雖然標題是"Docker下",但文中的設定在樹莓派上同樣生效;
驗證叢集環境
為了驗證叢集環境是否正常,我準備了一個Flink應用,該應用是基於官方的經典demo改造的,可以消費來自維基百科的實時訊息,實時計算每個編輯者15秒內修改的位元組數,這個應用被構建成檔案wikipediaeditstreamdemo-1.0-SNAPSHOT.jar,下載地址:https://download.csdn.net/download/boling_cavalry/10870815
PS:下載資源需要消耗您一個CSDN積分,作者想設定成免費下載,但一分是系統的最低要求;
-
將下載好的wikipediaeditstreamdemo-1.0-SNAPSHOT.jar檔案,通過網頁提交,操作步驟如下圖:
-
點選下圖紅框中的Upload按鈕,將檔案提交:
-
按照下圖的步驟設定引數,其中紅框2中的com.bolingcavalry.StreamingJob是應用類名,紅框3是並行度,當前環境只有兩個task slot,因此設定成2,點選了紅框4中的Submit按鈕後任務啟動了:
-
如下圖就是對維基百科的資料做實時計算後的輸出結果:
關於這個Flink應用的詳情,您可以參考文章《Flink實戰:消費Wikipedia實時訊息》;
至此,Flink叢集的搭建和相關驗證都已完成,由於硬體限制無法做複雜的計算和處理,但這個環境作為學習和實驗環境來使用還是挺適合的,希望本文能給您在搭建環境時提供一些參考;