2019-04-07-Flink(7)——flink standalone ha cluster 安裝與配置詳解

本文基於 Flink 1.7。

本文介紹搭建standalone HA 集羣的過程,並且簡單介紹核心配置。

Requirements

  • Java 1.8+
  • ssh

注意:集羣之間所有節點 無密SSH跳轉與保持相同的目錄結構將有助於使用Flink 提供的腳本。

版本選擇

下載 合適版本的Flink安裝包。Flink 並不要求一定要用到Hadoop 生態組件,如果要用到Hadoop 生態組件,建議下載於Hadoop 綁定的版本,在我們的場景中,用的是Hadoop2.6,所以這裏選擇Apache Flink 1.7.2 with Hadoop® 2.6。一般來說,Flink 的運行模式Yarn、以及savepoint/checkpoint 會用到HDFS,所以,採用與Hadoop 綁定的版本更常見一點。

配置Flink

我們這裏配置Flink Standalone HA集羣,集羣包含5臺機器,分別是testhadoop[1-5],其中testhadoop[1-2]上運行Jobmanager,testhadoop[3-5]上運行Taskmanager。

配置 ./conf/masters 文件,配置了Jobmanager,其中8081端口是Flink 的Rest 端口,該端口在下面的 ./conf/flink-conf.yaml 中配置。

$ cat masters
testhadoop1:8081
testhadoop2:8081

配置 ./conf/slaves 文件,配置Taskmanagers 地址。

$ cat slaves
testhadoop3
testhadoop4
testhadoop5

配置 ./conf/flink-conf.yaml 文件,注意,下面僅列出了對配置文件的更改,主要是HA方面的,該配置文件還有一些默認配置沒有列出,具體的可以參考配置文件。

jobmanager.rpc.address=testhadoop1   // Standalone HA Cluster模式下會被masters文件覆蓋
high-availability: zookeeper
high-availability.zookeeper.path.root: /flink_test
high-availability.cluster-id: cluster_test
high-availability.storageDir: hdfs:///flink_test/ha/
high-availability.zookeeper.quorum: testhadoop1:2181

啓動集羣

./bin/start-cluster.sh

可以看到,我們啓動了一個HA集羣,集羣有2個master節點,分別位於testhadoop[1-2]上,啓動了standalonesession 守護進程 ; 在testhadoop[3-5] 上,啓動了taskexecutor守護進程。我們用瀏覽器打開testhadoop1:8081 ,如下圖所示:

配置說明

下表介紹 ./conf/flink-conf.yaml 中重要的配置項,具體完整版參考配置頁面

屬性 默認值 說明
jobmanager.rpc.address localhost 僅 standalone 模式需要,表明jobmanager 所在host,如果是HA集羣,用./bin/start_cluster.sh 時,該配置會被master文件覆蓋。
jobmanager.heap.size 1024m Jobmanager的JVM heap size
taskmanager.heap.size 1024m Taskmanager的JVM heap size
taskmanager.numberOfTaskSlots 1 每個Taskmanager的slot數,每個slot 可以運行一個並行pipeline。如果該值大於1,則可以運行多個並行pipeline。優點是可以充分利用多核CPU,缺點是各個slot會平分可用的內存,通常來說,這個值被設置爲機器的物理CPU 核數。
parallelism.default 1 Flink 任務默認的並行度
high-availability "NONE" 默認爲NONE,但這並不適用於生產,所以,需要用zookeeper,
high-availability.zookeeper.path.root Flink 在 zookeeper中存儲的root 地址
high-availability.cluster-id "/default" Flink 集羣的ID,用於區分不同集羣,僅standalone 模式需要,Yarn/Mesos 可以自動推斷。
high-availability.storageDir HA 模式下,Flink 存儲元數據的文件系統URI,我們常用HDFS 路徑
high-availability.zookeeper.quorum HA 用到的zookeeper的地址
rest.port rest 端口
state.backend checkpoint的後端存儲,支持jobmanager、filesystem和rocksdb,常用rocksdb
state.checkpoints.dir checkpoint 的存儲目錄,比如HDFS 目錄
state.savepoints.dir savepoint 的存儲目錄,比如HDFS 目錄

總結

本文主要介紹Flink 的standalone 集羣安裝和配置,standalone 集羣可以快速搭建,也能滿足HA的要求。但是,在實際生產環境,可能更多的還是使用基於Yarn等資源管理器的Flink 集羣。

到此,Flink 基礎知識已經全部介紹,看到這裏應該已經可以寫一些簡單的Flink 應用了。

Flink(0)——基於flink的流計算

Flink(1)——基於flink sql的流計算平臺設計

Flink(2)——Apache Flink 介紹

Flink(3)——Event Time 與 Watermark

Flink(4)——Source 介紹與實踐

Flink(5)——sink 介紹與實踐

Flink(6)——flink table & sql 介紹

Flink(7)——Flink Standalone Cluster 安裝與配置詳解

爲了方便溝通,可以掃描下方二維碼關注我。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章