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

集群角色

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

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

 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

向集群提交作业

以之前读取Socket无界流发送的单词统计个数为案例,展示如何将任务以WebUI和命令行的方式提交到Flink。

第一步:程序打包

 在项目的pom.xml中添加打包插件配置,如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <artifactSet>
                            <excludes>
                                <exclude>com.google.code.findbugs:jsr305</exclude>
                                <exclude>org.slf4j:*</exclude>
                                <exclude>log4j:*</exclude>
                            </excludes>
                        </artifactSet>
                        <filters>
                            <filter>
                                <!-- Do not copy the signatures in the META-INF folder.
                                Otherwise, this might cause SecurityExceptions when using the JAR. -->
                                <artifact>*:*</artifact>
                                <excludes>
                                    <exclude>META-INF/*.SF</exclude>
                                    <exclude>META-INF/*.DSA</exclude>
                                    <exclude>META-INF/*.RSA</exclude>
                                </excludes>
                            </filter>
                        </filters>
                        <transformers combine.children="append">
                            <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer">
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

在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包。

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

配置完成后,点击“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

其中:

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

- Hola -

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值