1.Standalone模式
下载链接:https://archive.apache.org/dist/flink/flink-1.10.0/flink-1.10.0-bin-scala_2.12.tgz
https://repo.maven.apache.org/maven2/org/apache/flink/flink-shaded-hadoop-2-uber/2.7.5-10.0/flink-shaded-hadoop-2-uber-2.7.5-10.0.jar
#flink-conf
jobmanager.heap.size: 1024m #配置堆内存大小
taskmanager.memory.process.size: 1568m #总内存大小(堆内存,堆外存)
taskmanager.numberOfTaskSlots: 1 #配置多线程 有几个槽相当于允许多少个线程
parallelism.default: 1 #默认并行度:默认一个线程执行
集群部署:
第一台主机:
1.修改flink/conf/flink-conf.yaml 文件
jobmanager.rpc.address: hadoop1
其它的从机:
2.修改flink/conf/slaves
hadoop2
hadoop3
3.分发给另外两台机器
4.bin目录下启动:./start-cluster.sh
访问:localhos:8081
代码并行度–>全局并行度–>以提交job里面的并行度为准–>以集群配置文件里面为准!
点击show plan–>submit
命令行部署:在网页可以进行查看
显示当前运行的job : ./bin/flink/ list
取消运行job:./bin/flink/ cancel [job号]
以上方式非实际生产模式
Yarn模式:
以Yarm模式部署Flink任务时,要求Flink是有Hadoop支持的版本,Hadoop环境需要保证版本在2.2以上,并且集群中安装有HDFS服务。
Flink 提供了两种在yarn上的运行模式,分别为session-cluster 和 per-job-cluster模式;
1.Session-cluster 模式:
Session Cluster
1.启动hadoop集群(搭建略)
2. 启动yarn-session
未制定yarn-session 你就是Standalone 模式
./yarn-session.sh -n 2 -s 2 -jm 1024 -tm 1024 -nm test -d
其中:
-n(--container): TaskManager的数量。可以不指定 目前已经废弃使用
不指定 会进行动态分配
-s(--slots):每个TaskManager的slot数量,默认一个slot一个core,默认每个taskmanager的slot的个数为1,有时可以多一些taskmanager,做冗余。
-jm:JobManager的内存(单位mb)
-tm:每个taskmanager的内存(单位MB)
-nm:yarn的appName(现在yarn的ui上的名字)
-d:后台执行
执行任务:命令跟之前完全一样
./flink run -c com.example.flink.StreamWordCout -p 3 /Users/code/testDemo/target/demo-0.0.1-SNAPSHOT.jar -- host localhost --port 7777
去yarn控制台查看:登陆hadoop查看
取消yarn-session
yarn application --kill [yarnID]
Per Job Cluster模式
1.启动hadoop集群:
2.不启动yarn-session,直接执行job
K8s部署:
1.搭建k8s集群
2.配置各组件的yaml文件
3.在k8s上构建flink session cluster ,需要将flink集群的组件对应的docker镜像分别在k8s上启动,包括JobManager、TaskManager、JobManagerService三个镜像服务。每个镜像都可以从中央镜像仓库中获取
4.启动Flink Session Cluster
启动jobmanager-service 服务
kubectl create -f jobmanager-service.yaml
启动 jobmanager-deployment服务
kubectl create -f jobmanager-deployment.yaml
启动 taskmanager-deployment服务
kubectl create -f taskmanager-deployment.yaml
5.访问Flink-UI页面
集群启动之后,就可以通过jobmanagerService中的配置的WebUI端口,用浏览器输入以下url来访问FlinkUI页面:
http://{JobManagerHost:Port}/api/v1/namespace/default/services/flink-jobmanger:ui/proxy