flink集群搭建
Flink集群搭建
1、独立集群
1、上传解压配置环境变量
# 解压
tar -xvf flink-1.15.2-bin-scala_2.12.tgz
# 配置环境变量
vim /etc/profile
export FLINK_HOME=/usr/local/soft/flink-1.15.2
export PATH=$PATH:$FLINK_HOME/bin
source /etc/profile
2、修改配置文件
- flink-conf.yaml
jobmanager.rpc.address: master
jobmanager.bind-host: 0.0.0.0
taskmanager.bind-host: 0.0.0.0
taskmanager.host: localhost # noe1和node2需要单独修改
taskmanager.numberOfTaskSlots: 4
rest.address: master
rest.bind-address: 0.0.0.0
- masters
master:8081
- workers
node1
node2
3、同步到所有节点
scp -r flink-1.15.2 node1:`pwd`
scp -r flink-1.15.2 node2:`pwd`
# 修改node1和node2中地taskmanager.host
taskmanager.host: node1
taskmanager.host: node2
4、启动Flink独立集群
start-cluster.sh
# stop-cluster.sh
# flink web ui
http://master:8081
5、提交任务
- 将代码打包上传到服务器提交
flink run -c com.shujia.flink.core.Demo1StreamWordCount flink-1.0.jar
- 在flink web ui中直接提交
2、Flink on Yarn
flink on yarn模式:将flink地任务提交到yarn上运行
1、整合
# 在环境变量中配置HADOOP_CLASSSPATH
vim /etc/profile
export HADOOP_CLASSPATH=`hadoop classpath`
source /etc/profile
3、Flink on yarn部署模式
1、Application Mode
1、将任务提交到yarn上运行,yarn会为每一个flink地任务启动一个jobmanager和一个或者多个taskmanasger
2、代码main函数不再本地运行,dataFlow不再本地构建,如果代码报错在本地看不到详细地错误日志
flink run-application -t yarn-application -c com.shujia.flink.core.Demo1StreamWordCount flink-1.0.jar
# 查看yarn的日志
yarn logs -applicationId application_1717039073374_0001
2、Per-Job Cluster Mode
1、将任务提交到yarn上运行,yarn会为每一个flink地任务启动一个jobmanager和一个或者多个taskmanasger
2、代码地main函数在本地启动,在本地构建dataflow,再将dataflow提交给jobmanager,如果代码报错再本地可以烂到部分错误日志
flink run -t yarn-per-job -c com.shujia.flink.core.Demo1StreamWordCount flink-1.0.jar
3、Session Mode
1、先再yarn中启动一个jobmanager, 不启动taskmanager
2、提交任务地时候再动态申请taskmanager
3、所有使用session模式提交的任务共享同一个jobmanager
4、类似独立集群,只是集群在yarn中启动了,可以动态申请资源
5、一般用于测试
# 1、先启动会话集群
yarn-session.sh -d
# 2、在提交任务
flink run -t yarn-session -Dyarn.application.id=application_1717039073374_0004 -c com.shujia.flink.core.Demo1StreamWordCount flink-1.0.jar
# 在网页中直接提交