Flink提交作业和执行任务,需要几个关键组件:
Flink是一个非常灵活的处理框架,它支持多种不同的部署场景,还可以和不同的资源管理平台方便的集成。
本地模式、Standalone模式和FlinkonYARN模式是Flink的三种常见部署模式。
在本地模式下,Flink以单机模式运行,无需启动分布式资源管理器。这种模式适用于本地开发和测试,用于验证Flink代码的正确性和性能。(需要安装JDK)
第一步:上传安装包并解压
将Flink 1.17安装包上传至服务器,然后解压。
[root@VM-12-13-centos ~] tar -zxvf flink-1.17.0-bin-scala_2.12.tgz -C /opt/mudule/
第二步:直接使用脚本启动
Flink在local模式下,无需任何配置,直接解压启动即可。
[root@VM-12-13-centos /] cd opt/mudule/flink-1.17.0/
[root@VM-12-13-centos flink-1.17.0] bin/start-cluster.sh
启动后,通过 JPS 可以看到两个线程。
第三步:webUI界面访问
启动两个进程成功之后,访问8081端口号即可访问到flink的web管理界面,如果是云服务器需要开放对应端口,以及必须要在 /conf/flink-conf.yaml 中的 rest.bind-address 配置 0.0.0.0 ,不然无法访问WebUI。
http://服务器ip:8081
以之前读取Socket无界流发送的单词统计个数为案例,展示如何将任务以WebUI和命令行的方式提交到Flink。
第一步:程序打包
在项目的pom.xml中添加打包插件配置,如下:
org.apache.maven.plugins
maven-shade-plugin
3.2.1
package
shade
com.google.code.findbugs:jsr305
org.slf4j:*
log4j:*
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
在IDEA的Maven工具中依次执行clean、package命令,然后在target目录下可以看到打包好的JAR包。
启动Socket隧道
[root@VM-12-13-centos flink-1.17.0] nc -lk 8877
在Flink的WEB UI页面,在右侧导航栏点击“Submit New Job”,然后点击按钮“+ Add New”,选择要上传刚刚打好的JAR包。
点击该任务,会出现任务配置页面,进行相应配置。
配置完成后,点击“Submit”将任务提交到集群运行 。
测试
在Socket端口中键入一些单词(一定不能断开连接,不然任务会立马失败退出)
[root@VM-12-13-centos flink-1.17.0]# nc -lk 8877
hello flink
hello eason
hello flinl
返回Flink WebUI中,点击左侧菜单中的 TaskManager ,然后点击服务器节点,在Stuout可以看到输出的结果。
后续的结果需要点击刷新才能显示出最新的结果。
如果想结束任务,可以在任务中点击“Cancel Job”以结束任务。
上传Flink程序Jar包
将flink程序运行jar包上传到/opt/module/flink-1.17.0中
命令提交作业
[root@VM-12-13-centos flink-1.17.0]# bin/flink run -m localhost:8081 -c com.xxx.wc.SocketStreamWordCount ./FlinkTutorial-1.0-SNAPSHOT.jar
Job has been submitted with JobID 0a817089223c05502e9b40fe615f67f7
其中:
此时,刷新Web可以看到正在运行的任务,测试步骤与之前一样。