Flink集群搭建
1、独立集群(Standalone)
Standalone模式
初步学习时,没有其它可用框架
了解即可
1、上传解压配置环境变量
# 解压
tar -xvf flink-1.15.4-bin-scala_2.12.tgz# 配置环境变量
vim /etc/profileexport FLINK_HOME=/usr/local/soft/flink-1.15.4
export PATH=$PATH:$FLINK_HOME/binsource /etc/profile
2、修改配置文件
# 1、修改 flink-conf.yaml
# 修改以下配置
jobmanager.rpc.address: master
jobmanager.bind-host: 0.0.0.0
taskmanager.bind-host: 0.0.0.0
taskmanager.host: node1/node2 # node1和node2需要单独改成对应主机名
taskmanager.numberOfTaskSlots: 4
rest.address: master
rest.bind-address: 0.0.0.0# 2、masters
master:8081# 3、workers
node1
node2
3、同步到所有节点
scp -r flink-1.15.4/ node1:`pwd`
scp -r flink-1.15.4/ node2:`pwd`# 分别修改node1和node2 flink-conf.yaml中taskmanager.host
taskmanager.host: node1/node2
4、启动Flink集群
# 启动集群
start-cluster.sh# 关闭独立集群
stop-cluster.sh# web ui,默认访问端口8081
http://master:8081
5、提交任务
# 1、将代码打包上传到服务器中运行
flink run -c com.shujia.flink.core.Demo01WordCount flink-1.0.jar# 2、在网页中直接上传提交
# 如果查找java中的print输出,通过logs进行查找;若是查找flink中的输出,那么要到Stdout中查找
2、Flink on YARN
1、整合HADOOP
# 在环境变量中增加HADOOP_CLASSPATHvim /etc/profile
# 在最后面添加(执行顺序!)
export HADOOP_CLASSPATH=`hadoop classpath`
source /etc/profile# 启动hadoop
start-all.sh
2、Application mode
1、相当于spark的 cluster
2、在本地没有详细的错误日志
3、一般用于生产
4、直接提交任务,每一个任务单独启动一个JobManager和多个taskManager(独享,浪费)
# 提交任务到yarn上运行 -t yarn-application:设置运行模式,默认是standalone
flink run-application -t yarn-application -c com.shujia.flink.tf.Demo08Process flink-1.0.jar # 查看错误日志
yarn logs -applicationId application_1705563704331_0002# 将报错日志文件输出成一个.log的文件
yarn logs -applicationId application_1705563704331_0002 > flink.log
#将该文件输出到指定位置
sz flink.log
3、Per-Job Cluster Mode
1、相当于spark 的client模式
2、在本地可以看到错误日志
3、一般用于测试
4、直接提交任务,每一个任务单独启动一个JobManager和多个taskManager(独享,浪费)
# 提交任务
flink run -t yarn-per-job -c com.shujia.flink.tf.Demo08Process flink-1.0.jar
4、Session Mode
1、会话模式是先在yarn启动启动一个JobManager,再提交任务,提交任务时动态申请taskmanager
2、任务共享同一个JobManager
# 1、启动会话集群,-d表示后台启动
yarn-session.sh -d# 2、提交任务
# 可以在命令行提交
flink run -t yarn-session -Dyarn.application.id=application_1705563704331_0004 -c com.shujia.flink.core.Demo1WordCount flink-1.0-SNAPSHOT.jar # 在网页中提交