CentOS 7/8 部署Flink高可用獨立集群


首先要安裝JDKzookeeper,參考 https://www.cnblogs.com/dotqin/p/13560419.html 及 https://www.cnblogs.com/dotqin/p/13560764.html

另外需要各服務器之間SSH免密碼登錄,這個自行百度,要注意的是自己SSH自己也要免密碼

除此之外還需要准備一個共享的儲目錄,可以是hdfs、ceph、S3、nfs

 

環境說明:三台百度雲服務器,內網IP分別為: 192.168.32.36、192.168.32.37、192.168.32.38, 不開放公網IP訪問

 

分別在三台服務器上執行以下操作:

1.創建目錄及下載解壓

mkdir /usr/local/flink
cd /usr/local/flink
wget https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.11.1/flink-1.11.1-bin-scala_2.11.tgz
tar zxvf flink-1.11.1-bin-scala_2.11.tgz

2.編輯master文件

vim /usr/local/flink/flink-1.11.1/conf/masters
# 設置為以下內容
192.168.32.36:8081
192.168.32.37:8081
192.168.32.38:8081

3.編輯配置文件

vim /usr/local/flink/flink-1.11.1/conf/flink-conf.yaml
# 首先將jobmanager.rpc.address項注釋掉
# 然后設置高可用相關的配置項
high-availability: zookeeper
high-availability.storageDir: /nfs/flink/ha/ # 存儲目錄 這里直接使用了百度雲的CFS文件系統,三台均掛載到了/nfs下
high-availability.zookeeper.quorum: 192.168.32.36:2181,192.168.32.37:2181,192.168.32.38:2181 # ZooKeeper quorum是ZooKeeper服務器的復制組,它提供分布式協調服務
high-availability.zookeeper.path.root: /flink # 根ZooKeeper節點,在該節點下放置所有集群節點
high-availability.cluster-id: /ccreate-flink-cluster # cluster-id ZooKeeper節點,在該節點下放置集群的所有必需協調數據
# 另外以下幾個參數看情況調整
jobmanager.memory.process.size: 10240m
taskmanager.memory.process.size: 10240m
taskmanager.numberOfTaskSlots: 8 # flink槽數量 建議設置為當前服務器的CPU核數
parallelism.default: 1 # 這個可以在JOB中指定,這里設不設置影響不大, 優先級最低

4.檢驗集群啟動和停止

cd /usr/local/flink/flink-1.11.1/
# 啟動集群 這個操作會在三台服務器上各啟動一個jobmanager守護程序,以及在當前服務器上啟動一個taskmanager守護程序,所以最終還是需要三台服務器都運行一下這個命令
bin/start-cluster.sh
# 停止集群 這個具體停止哪些守護程序未進行測試
bin
/stop-cluster.sh

# 這兩個命令建議多運行幾次直到沒有YES彈出,另外如果彈出讓你輸密碼的提示說明你SSH免密碼可能沒有配置好

# 確認可以無障礙啟動集群后可以登錄WEB查看 http:
//192.168.32.36:8081

# webUI有一點要注意只有在leader的webUI中才可以查看Task Managers的信息,其他的如果停留在Task Managers頁面會循環報錯,經驗證離開頁面后報錯就會停止不會無限產生日志導致磁盤爆滿

5.添加到服務管理

vim /usr/lib/systemd/system/flink.service
# 添加以下內容
[Unit]
Description=flink-1.11.1 service
After=syslog.target network.target zookeeper.service

[Service]
Restart=always
RestartSec=1 Type
=forking TimeoutSec=120 User=root Environment=JAVA_HOME=/usr/local/java/jdk1.8.0_261 ExecStart=/usr/local/flink/flink-1.11.1/bin/start-cluster.sh ExecStop=/usr/local/flink/flink-1.11.1/bin/stop-cluster.sh [Install] WantedBy=multi-user.target

6.設置服務生效及開機自啟動

systemctl daemon-reload
systemctl enable flink.service

7.啟動flink集群

systemctl start flink
systemctl status flink

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM