Flink在日常工作时一般使用2种部署方式,stand-alone模式或者是on yarn 模式,stand-alone模式的话部署比较简单,on-yarn模式需要部署hadoop集群。我们可以看下flink的架构图如下:
我们直接部署一个HA模式的stand-alone集群,一步到位。
前提准备三台服务器dn1,dn2,dn3(host地址)
在https://flink.apache.org/downloads.html下载自己所需要部署的安装包,上传到dn1并解压
tar -zxvf flink-1.6.3-bin-hadoop27-scala_2.11.tgz -C /www
配置jobmanager两台
vim /www/flink-1.6.3/conf/master
dn1:8081
dn2:8081
配置taskmanager三台
vim /www/flink-1.6.3/conf/slaves
dn1
dn2
dn3
配置flink核心配置文件
vim /www/flink-1.6.3/conf/flink-conf.yaml
high-availability: zookeeper
high-availability.zookeeper.quorum: dn1:2181,dn2:2181,dn3:2181
high-availability.storageDir: hdfs:///mycluster/flink/ha/
按照包分发到各台机器
scp -r flink-1.6.3 root@dn2:/www
scp -r flink-1.6.3 root@dn3:/www
启动集群
bin/start-cluster.sh
查看webui
http://dn1:8081/ 打开正常如下图所示。同时 http://dn2:8081/ 也会自动跳转到 http://dn1:8081/ 证明ha模式ok
bin/yarn-session.sh -n 2 -jm 1024 -tm 1024 -qu root.up
会在yarn界面上看到一个启动状态的Flink任务,appname=Flink Session cluster
可以通过以下命令提交一个flink任务
./bin/flink run ./examples/batch/WordCount.jar --input hdfs://mycluster/tmp/input/ --output hdfs://mycluster/tmp/output1
源文件输入为:
hello word
wc
hadoop fs -cat hdfs://mycluster/tmp/output1
hello 1
wc 1
word 1
job运行完成后,taskmanager会被自动回收
single job模式就是每次提交都会产生一个新的appid,相当于每次一个新的yarn-session,提交命令如下:
./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 -yqu root.up ./examples/batch/WordCount.jar -input hdfs://mycluster/tmp/input/ -output hdfs://mycluster/tmp/output2
hadoop fs -cat hdfs://mycluster/tmp/output2
hello 1
wc 1
word 1