Flink云服务器本地集群部署及作业提交

集群角色

Flink提交作业和执行任务,需要几个关键组件:

  • 客户端(Client):代码由客户端获取并做转换,之后提交给Manager
  • JobManner就是Flink集群里的“老大”,对作业进行中央调度管理;而它获取到要执行的作业后,会进一步处理转换, 然后分发任务给众多的TaskManager。
  • TaskManager就是“真正干活”的人,数据的处理操作是它们来做。

Flink云服务器本地集群部署及作业提交_第1张图片

 Flink是一个非常灵活的处理框架,它支持多种不同的部署场景,还可以和不同的资源管理平台方便的集成。

本地模式、Standalone模式和FlinkonYARN模式是Flink的三种常见部署模式。

Flink的local模式部署安装

在本地模式下,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

Flink云服务器本地集群部署及作业提交_第2张图片

向集群提交作业

以之前读取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

在WebUI上提交作业

在Flink的WEB UI页面,在右侧导航栏点击“Submit New Job”,然后点击按钮“+ Add New”,选择要上传刚刚打好的JAR包。

Flink云服务器本地集群部署及作业提交_第3张图片

点击该任务,会出现任务配置页面,进行相应配置。

Flink云服务器本地集群部署及作业提交_第4张图片

配置完成后,点击“Submit”将任务提交到集群运行 。

测试

在Socket端口中键入一些单词(一定不能断开连接,不然任务会立马失败退出)

[root@VM-12-13-centos flink-1.17.0]# nc -lk 8877
hello flink
hello eason 
hello flinl

返回Flink WebUI中,点击左侧菜单中的 TaskManager ,然后点击服务器节点,在Stuout可以看到输出的结果。

Flink云服务器本地集群部署及作业提交_第5张图片

后续的结果需要点击刷新才能显示出最新的结果。

如果想结束任务,可以在任务中点击“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

其中:

  • -m 指定要将任务提交到的节点
  • -C 指定程序入口类

此时,刷新Web可以看到正在运行的任务,测试步骤与之前一样。

你可能感兴趣的:(flink,大数据)