1、服務器部署
主機名配置(集群服務器,執行相同操作)
登錄root用戶
執行
vi /etc/hosts
將集群服務器中所有的IP地址進行配置,例如:
192.168.0.1 appserver1
192.168.0.2 appserver2
備注:部署集群時一定注意集群服務器的IP順序一定是:
192.168.0.1 appserver1 在前
192.168.0.2 appserver2 在后
不然配置完成后,只能啟動順序正確的服務器,
執行
vi /etc.sysconfig/network
將當前主機名進行配置,例如:
當前主機名是:appserver1
HOSTNAME=appserver1
2、創建flink用戶
groupadd -g 500 flink
useradd -d /home/flink -s /bin/bash -g flink -u 500 -m flink
passswd flink
創建一個用戶名密碼都為flink的用戶,
3、將集群服務器進行SSH免密配置
登錄flink用戶
ssh-keygen -t rsa (回車四次)
cd ~/.ssh 查看id_rsa(私鑰)和id_pub(公鑰)
上述操作,在每一個flink集群服務器全部操作一遍
每一臺服務器,執行:
ssh-copy-id 192.168.0.2 (集群內其他服務器的IP地址)
嘗試免密登錄 ssh 目標IP地址
4、部署安裝包
可以在flink官網上下載
在Apache Flink: Downloads
https://flink.apache.org/downloads.html
下載spring、ojdbc、durid、mysql-connector所需要的第三方擴展jar
將下載的flink-1.11.6-bin-scala_2.12.tar檔案上傳至服務器
通過FTP工具上傳檔案
上傳至/home/flink檔案夾下
解壓下載的flink壓縮包解壓命令
tar -zxvf flink-1.11.6-bin-scala_2.12.tar
創建臨時目錄
登錄flink用戶后,創建存放JOB的臨時檔案目錄和臨時檔案目錄tmp
mkidr jobs
mkdir tmp
4、standlone部署
修改flink-conf.yaml
路徑:/home/flink/flinkflink-1.11.6-bin-scala_2.12/conf
打開組態檔
vi flink-conf.yaml
按照下面引數進行配置:
#配置主機名(JOBMANAGER的主機名,例如:appserver1,即appserver1 為主節點)
jobmanager.rpc.address: appserver1
#RPC埠(默認不改變)
jobmanager.rpc.port: 6123
#REST埠(console控制臺與微服務呼叫時訪問的埠)
rest.port:8081
#taskmanager所能提供的slots數量,一般設定成和機器邏輯CPU核數一致
#供參考:cat /proc/cpuinfo|grep "processor"| wc -1
taskmanager.number0fTaskSlots: 16
#默認任務并行度
parallelism.default: 4
#上傳jar檔案所在臨時目錄 默認在/tmp會被系統定時清理
io.tmp.dirs: /home/flink/flinkflink-1.11.6-bin-scala_2.12/jobs
#引數調度,調度Task時均勻調度內個 TaskManager 中,這有利于使用所有的資源
cluster.evenly-spread-out-slots:true
#默認全域重試,需打開region 重試才能enable 單點的failover
jobmanager.execution.failover-strategy:region
#重試策略需要手動設定,默認是不重試的
restar-startegay:fixed-delay
#Shuffle read 使用 mmap 的方式,直接靠系統來管理記憶體,是比較方便的形式
taskmanager.network.blocking-shffle.type: mmap
#使用壓縮,這個引數是批流復用的,強烈建議給批作業開啟壓縮,不然瓶頸就會在磁盤上
taskmanager.network.blocking-shffle.comression.enabled: true
#JOB管理JVM堆記憶體 jobmanager.heap.size: 4096m (1.11版本后已經廢棄,需要洗掉或者注釋)
jobmanager.memory.flink.size: 2048m(standlone模式啟用)
#TASK管理器JVM堆記憶體的總大小(包括堆內記憶體與托管記憶體)flink總記憶體
taskmanager.memory.flink.size: 4096m(standlone模式啟用)
#托管記憶體(批處理排序需要使用,size與fraction二選一)
taskmanager.memory.managed.size:2024m(明確托管記憶體大小)
taskmanager.memory.managed.fraction: 0.4(托管記憶體占flink總記憶體數量)
#Task點到點的通信需要4個Buffers,根據并發大概計算得出需要2GB
taskmanager.memory.network.max: 2000m
修改masters
配置Jobmanager服務器
如果appserver1 服務器作為flink的Jobmanager服務器,配置如下:
路徑:/home/flink/flinkflink-1.11.6-bin-scala_2.12/conf
vi masters
#添加一下內容:
appserver1
修改slaves
配置taskmanager服務器串列
路徑:/home/flink/flinkflink-1.11.6-bin-scala_2.12/conf
vi slaves
#添加一下內容:
appserver1
appserver2
工程復制
Standlone集群下,為保證所有的節點下flink配置相同,采用復制的方式,從已經配置好的服務器,向其他集群服務器進行復制同步,
例如:appserver1 向appserver2 服務器同步
scp -r /home/flink/flinkflink-1.11.6-bin-scala_2.12 appserver2:/home/flink
啟動flink
可以在集群下任意系統上啟動
在/home/flink/flinkflink-1.11.6-bin-scala_2.12/bin
./start-cluster.sh
檢查啟動情況
jps
檢查是否存在StandaloneSessionClusterEntrypoint和TaskManagerRunner
在其他服務器上
jps
檢查是否存在TaskManagerRunner
停止flink
可以在任意系統上啟動
./stop-cluster.sh
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/434525.html
標籤:其他
