1. 程式人生 > >樹莓派3B搭建Flink叢集

樹莓派3B搭建Flink叢集

今天的實戰是用兩臺樹莓派3B組建Flink1.7叢集環境,模式是獨立叢集(Cluster Standalone);

操作步驟

  1. 準備作業系統;
  2. 安裝JDK;
  3. 配置host;
  4. 安裝Flink1.7;
  5. 配置引數;
  6. 設定兩臺樹莓派相互SSH免密碼登入;
  7. 啟動Flink叢集環境;
  8. 部署一個Flink應用,驗證環境是否正常;

樹莓派作業系統

兩臺樹莓派的作業系統都是64位Debian,詳細的安裝步驟請參考《樹莓派3B安裝64位作業系統(樹莓派無需連線顯示器鍵盤滑鼠)》;

安裝JDK

安裝JDK的操作步驟在《樹莓派3B安裝64位作業系統(樹莓派無需連線顯示器鍵盤滑鼠)》

一文中有詳細說明,就不在此贅述了,注意兩臺機器都要安裝;

安裝Flink1.7

安裝Flink的操作在兩臺樹莓派上都要做,操作步驟一模一樣,如下:

  1. 在Flink官網下載,地址是:https://flink.apache.org/downloads.html

  2. 如下圖,選擇紅框中的版本:
    在這裡插入圖片描述

  3. 下載的Flink安裝包檔案是flink-1.7.0-bin-hadoop28-scala_2.11.tgz,放在此位置:/usr/local/work

  4. 在/usr/local/work目錄下執行命令tar -zxvf flink-1.7.0-bin-hadoop28-scala_2.11.tgz

    解壓,會生成一個資料夾:flink-1.7.0

機器情況

兩臺樹莓派3B的IP地址、hostname等資訊如下列表所示:

IP地址 hostname 身份
192.168.1.102 dubhe 叢集的master,即job節點
192.168.1.104 merak 叢集的slave,即task節點

配置

注意,接下來的四步配置,請在dubhe、merak這兩臺機器上各執行一次,操作的步驟內容一模一樣:

  1. 開啟/etc/hosts檔案,增加以下兩行(請按照您的機器IP情況來寫):
192.168.1.102 dubhe
192.168.1.104 merak
  1. 開啟檔案/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數量;

  1. 開啟檔案/usr/local/work/flink-1.7.0/conf/masters,裡面只保留以下這一行內容,表示dubhe做master:
dubhe:8081
  1. 開啟檔案/usr/local/work/flink-1.7.0/conf/slaves,裡面只保留以下這一行內容,表示merak做slave:
merak

至此,配置完成,可以啟動叢集了;

啟動叢集

  1. 在dubhe執行以下命令即可啟動整個叢集:
/usr/local/work/flink-1.7.0/bin/start-cluster.sh
  1. 控制檯提示輸入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.
  1. 在瀏覽器輸入地址: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積分,作者想設定成免費下載,但一分是系統的最低要求;

  1. 將下載好的wikipediaeditstreamdemo-1.0-SNAPSHOT.jar檔案,通過網頁提交,操作步驟如下圖:
    在這裡插入圖片描述

  2. 點選下圖紅框中的Upload按鈕,將檔案提交:
    在這裡插入圖片描述

  3. 按照下圖的步驟設定引數,其中紅框2中的com.bolingcavalry.StreamingJob是應用類名,紅框3是並行度,當前環境只有兩個task slot,因此設定成2,點選了紅框4中的Submit按鈕後任務啟動了:
    在這裡插入圖片描述

  4. 如下圖就是對維基百科的資料做實時計算後的輸出結果:
    在這裡插入圖片描述

關於這個Flink應用的詳情,您可以參考文章《Flink實戰:消費Wikipedia實時訊息》

至此,Flink叢集的搭建和相關驗證都已完成,由於硬體限制無法做複雜的計算和處理,但這個環境作為學習和實驗環境來使用還是挺適合的,希望本文能給您在搭建環境時提供一些參考;