1. 部署說明
Flink 有三種部署模式,分別是 Local垫挨、Standalone Cluster 和 Yarn Cluster。對于 Local 模式來說,JobManager 和 TaskManager 共用一個 JVM夜只,Local模式的部署請點擊http://www.reibang.com/p/26c9ef86fb19。如果要驗證一個簡單的應用炒俱,Local 模式是最方便的盐肃。實際應用中大多使用 Standalone 或者 Yarn Cluster。
Flink是Master/Slave架構(gòu)权悟,充當Master角色的是JobManager砸王,充當Slave角色是SlaveTaskManager。和所有Master/Slave架構(gòu)的集群一樣峦阁,JobManager也存在單點故障的問題谦铃;Flink也提供了Master HA的方案,是由Zookeeper支撐的榔昔;本次部署暫不考慮HA的情況驹闰,僅僅達到了集群運行起來的目標。
2. 部署要求
機器三臺撒会,IP是192.168.1.90—92嘹朗,主機名分別是vm1、vm2诵肛、vm3屹培。
Linux操作系統(tǒng),本次使用Centos 7.1。
-
JDK1.7或者更高版本褪秀,本次使用JDK 1.8蓄诽,并配置環(huán)境變量。
[root@vm1 ~]# vi /etc/profile #在文件的末尾配置JAVA_HOME和Path export JAVA_HOME=/opt/jdk export PATH=$PATH:$JAVA_HOME/bin [root@vm1 ~]# source /etc/profile
-
設(shè)置ssh免登錄
-
生成ssh密碼的命令媒吗,-t 參數(shù)表示生成算法仑氛,有rsa和dsa兩種;-P表示使用的密碼闸英,這里使用“”空字符串表示無密碼锯岖。直接回車。
[root@vm1 ~]# ssh-keygen -t rsa -P ""
-
將生成的密鑰寫入authorized_keys文件甫何。
[root@vm1 ~]# cat .ssh/id_rsa.pub >>.ssh/authorized_keys
-
將.ssh目錄拷貝到其它主機相同目錄下嚎莉。
[root@vm1 ~]# scp -r ~/.ssh root@192.168.1.91:~/ [root@vm1 ~]# scp -r ~/.ssh root@192.168.1.92:~/
-
3. 部署過程
3.1 部署Flink
把Flink的壓縮包解壓到/opt目錄下,即Flink的Home路徑是/opt/flink-1.1.2沛豌,保持各臺機器上flink目錄一致趋箩。
3.2 Flink參數(shù)設(shè)置
Flink的配置文件路徑是/opt/flink-1.1.2/conf,目錄下的文件包括
- flink-conf.yaml #flink的主配置文件
- log4j-cli.properties
- log4j.properties
- log4j-yarn-session.properties
- logback.xml
- logback-yarn.xml
- masters # master(jobmanager)配置文件
- slaves # slave(taskmanager)配置文件
- zoo.cfg # Zookeeper配置文件
本次部署加派,修改了vm1上的flink-conf.yaml叫确、mastes和slaves,并在修改完成后拷貝到了vm2和vm3上芍锦。
3.2.1 flink-conf.yaml的修改
文件路徑是/opt/flink-1.1.2/conf/flink-conf.yaml
竹勉,主要關(guān)注以下參數(shù),具體的含義見注釋娄琉。還有更多的參數(shù)配置次乓,例如前端頁面的配置、文件存儲的配置(支持HDFS)孽水、HA的配置等票腰,更多配置說明參考:Flink官方配置說明。
# Master的主機名或者ip
jobmanager.rpc.address: vm1
# JobManager監(jiān)聽端口
jobmanager.rpc.port: 6123
# JobManager的內(nèi)存參數(shù)
jobmanager.heap.mb: 512
# 每臺taskmanager可用的總內(nèi)存
taskmanager.heap.mb: 8192
# 每臺taskmanager可用的solt數(shù)目女气,一般設(shè)置成CPU的core數(shù)
taskmanager.numberOfTaskSlots: 2
# NumTaskManagers(slave的個數(shù)) * NumSlotsPerTaskManager
parallelism.default: 4
# 酌情修改臨時目錄杏慰。/tmp中的數(shù)據(jù)重啟就沒了。
taskmanager.tmp.dirs: /tmp
3.2.1 masters的修改
在配置jobmanager(master)文件時炼鞠,除了配置master的主機名(IP)之外缘滥,還需要指定 JobManager 的 UI 監(jiān)聽端口。
vm1:8081
3.2.1 slaves的修改
修改slaves文件谒主,配置多個taskmanager(slave)朝扼。
vm2
vm3
3.3 集群啟動和停止
3.3.1 啟動集群
在master節(jié)點,即本例中的vm1節(jié)點上執(zhí)行以下命令霎肯,啟動集群擎颖。其過程就是先啟動本機的jobmanager凹耙,然后ssh到各個slave節(jié)點上啟動taskmanager。
[root@vm1 flink-1.1.2]# bin/start-cluster.sh
訪問http://vm1:8081肠仪,可以看到有2個taskmanager,和4個slot备典。
3.3.2 停止集群
在master節(jié)點异旧,即本例中的vm1節(jié)點上執(zhí)行以下命令,啟動集群提佣。其過程是先ssh到各個slave節(jié)點上停止taskmanager吮蛹,再停止本機的jobmanager。
[root@vm1 flink-1.1.2]# bin/stop-cluster.sh
3.3.3 啟停集群中的一個節(jié)點
如果想要啟動或者停止機器中的節(jié)點拌屏,不論是jobmanager或者taskmanager潮针,都可以在對應的主機上執(zhí)行以下命令。
# 啟動本機的jobmanager
bin/jobmanager.sh start
# 啟動本機的taskmanager
bin/taskmanager.sh start
# 停止本機的taskmanager
bin/taskmanager.sh stop
# jobmanager
bin/jobmanager.sh stop
https://ci.apache.org/projects/flink/flink-docs-release-1.1/quickstart/setup_quickstart.html#cluster-setup
https://ci.apache.org/projects/flink/flink-docs-release-1.1/setup/cluster_setup.html
(完)