Flink集群搭建

这篇具有很好参考价值的文章主要介绍了Flink集群搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3696字,阅读大概需要3分钟
🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿
个人网站:https://jerry-jy.co/

一、实验目的

掌握Flink集群搭建的过程。
掌握Flink集群的启动、停止、提交作业

二、实验内容

1、搭建Flink集群
2、集群的启动,停止、提交作业

三、实验原理

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

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

flink集群搭建,Flink,flink,大数据

四、实验环境

硬件:x86_64 CentOS 7.5 服务器
软件:JDK1.8,Flink-1.17.1,Hadoop-3.3.3,IntelliJ Idea-2022

五、实验步骤

5.1 集群启动

0)集群规划


flink集群搭建,Flink,flink,大数据

安装部署
1)下载并解压安装包
(1)下载安装包flink-1.17.1-bin-scala_2.12.tgz,将该jar包上传到hadoop102节点服务器的/opt/software路径上。
安装包下载地址:https://flink.apache.org/zh/downloads/
(2)在/opt/software路径上解压flink-1.17.0-bin-scala_2.12.tgz/opt/module路径上。

[root@hadoop102 software]$ tar -zxvf flink-1.17.0-bin-scala_2.12.tgz -C /opt/module/

2)修改集群配置
(1)进入conf路径,修改flink-conf.yaml文件,指定hadoop102节点服务器为JobManager

[root@hadoop102 conf]$ vim flink-conf.yaml

修改如下内容:

# JobManager节点地址.
jobmanager.rpc.address: hadoop102
jobmanager.bind-host: 0.0.0.0
rest.address: hadoop102
rest.bind-address: 0.0.0.0
# TaskManager节点地址.需要配置为当前机器名
taskmanager.bind-host: 0.0.0.0
taskmanager.host: hadoop102

(2)修改workers文件,指定hadoop102、hadoop103和hadoop104为TaskManager

[root@hadoop102 conf]$ vim workers

修改如下内容:

hadoop102
hadoop103
hadoop104

(3)修改masters文件

[root@hadoop102 conf]$ vim masters

修改如下内容:

hadoop102:8081

(4)另外,在flink-conf.yaml文件中还可以对集群中的JobManagerTaskManager组件进行优化配置,主要配置项如下:

  • jobmanager.memory.process.size:对JobManager进程可使用到的全部内存进行配置,包括JVM元空间和其他开销,默认为1600M,可以根据集群规模进行适当调整。
  • taskmanager.memory.process.size:对TaskManager进程可使用到的全部内存进行配置,包括JVM元空间和其他开销,默认为1728M,可以根据集群规模进行适当调整。
  • taskmanager.numberOfTaskSlots:对每个TaskManager能够分配的Slot数量进行配置,默认为1,可根据TaskManager所在的机器能够提供给Flink的CPU数量决定。所谓Slot就是TaskManager中具体运行一个任务所分配的计算资源。
  • parallelism.default:Flink任务执行的并行度,默认为1。优先级低于代码中进行的并行度配置和任务提交时使用参数指定的并行度数量。

3)分发安装目录
(1)配置修改完毕后,将Flink安装目录发给另外两个节点服务器。

[root@hadoop102 module]$ xsync flink-1.17.1/

(2)修改hadoop103的 taskmanager.host

[root@hadoop103 conf]$ vim flink-conf.yaml

修改如下内容:

# TaskManager节点地址.需要配置为当前机器名
taskmanager.host: hadoop103

(3)修改hadoop104的 taskmanager.host

[root@hadoop104 conf]$ vim flink-conf.yaml

修改如下内容:

# TaskManager节点地址.需要配置为当前机器名
taskmanager.host: hadoop104

4)启动集群
(1)在hadoop102节点服务器上执行start-cluster.sh启动Flink集群:

[root@hadoop102 flink-1.17.1]# bin/start-cluster.sh

(2)查看进程情况:

[root@hadoop102 flink-1.17.1]# jpsall
=============== hadoop102 ===============
3024 Jps
2467 StandaloneSessionClusterEntrypoint
2869 TaskManagerRunner
=============== hadoop103 ===============
2059 TaskManagerRunner
2159 Jps
=============== hadoop104 ===============
2038 TaskManagerRunner
2138 Jps

flink集群搭建,Flink,flink,大数据


5)访问Web UI
启动成功后,同样可以访问http://hadoop102:8081对flink集群和任务进行监控管理。


flink集群搭建,Flink,flink,大数据

这里可以明显看到,当前集群的TaskManager数量为3;由于默认每个TaskManager的Slot数量为1,所以总Slot数和可用Slot数都为3。

5.2 向集群提交作业

在上一节中,我们已经编写读取socket发送的单词并统计单词的个数程序案例。
本节我们将以该程序为例,演示如何将任务提交到集群中进行执行。具体步骤如下。

1)环境准备
在hadoop102中执行以下命令启动netcat

[root@hadoop102 flink-1.17.1]# nc -lk 7777

2)程序打包
(1)在我们编写的Flink入门程序的pom.xml文件中添加打包插件的配置,具体如下:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.4</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>

(2)插件配置完毕后,可以使用IDEA的Maven工具执行 clean package命令,出现如下提示即表示打包成功。


flink集群搭建,Flink,flink,大数据


打包完成后,在target目录下即可找到所需JAR包,JAR包会有两个,FlinkTutorial-1.0-SNAPSHOT.jarFlinkTutorial-1.0-SNAPSHOT-jar-with-dependencies.jar,因为集群中已经具备任务运行所需的所有依赖,所以建议使用FlinkTutorial-1.0-SNAPSHOT.jar


flink集群搭建,Flink,flink,大数据


3)在Web UI上提交作业

(1)任务打包完成后,我们打开Flink的WEB UI页面,在右侧导航栏点击“Submit New Job”,然后点击按钮“+ Add New”,选择要上传运行的JAR包,如下图所示。


flink集群搭建,Flink,flink,大数据


JAR包上传完成,如下图所示:


flink集群搭建,Flink,flink,大数据


(2)点击该JAR包,出现任务配置页面,进行相应配置。
主要配置程序入口主类的全类名,任务运行的并行度,任务运行所需的配置参数和保存点路径等,如下图所示,配置完成后,即可点击按钮“Submit”,将任务提交到集群运行。


flink集群搭建,Flink,flink,大数据


(3)任务提交成功之后,可点击左侧导航栏的“Running Jobs”查看程序运行列表情况。


flink集群搭建,Flink,flink,大数据


(4)测试
①启动netcat

[root@hadoop102 flink-1.17.1]$ nc -lk 7777

②在socket端口中输入如下

hello java
hello flink

③先点击Task Manager,然后点击右侧的192.168.10.104服务器节点


flink集群搭建,Flink,flink,大数据


③点击Stdout,就可以看到hello单词的统计


flink集群搭建,Flink,flink,大数据


(4)点击该任务,可以查看任务运行的具体情况,也可以通过点击“Cancel Job”结束任务运行。


flink集群搭建,Flink,flink,大数据


5.3 命令行提交作业

除了通过WEB UI界面提交任务之外,也可以直接通过命令行来提交任务。
这里为方便起见,我们可以先把jar包直接上传到目录flink-1.17.1下
(1)首先需要启动集群。

[root@hadoop102 flink-1.17.1]$ bin/start-cluster.sh

(2)在hadoop102中执行以下命令启动netcat。

[root@hadoop102 flink-1.17.0]$ nc -lk 7777

(3)将flink程序运行jar包上传到/opt/module/flink-1.17.1路径。

(4)进入到flink的安装路径下,在命令行使用flink run命令提交作业。

[root@hadoop102 flink-1.17.1]$ bin/flink run -m hadoop102:8081 -c com.atguigu.wc.SocketStreamWordCount ./FlinkTutorial-1.0-SNAPSHOT.jar

这里的参数 -m指定了提交到的JobManager,-c指定了入口类。

(5)在浏览器中打开Web UI,http://hadoop102:8081查看应用执行情况。

用netcat输入数据,可以在TaskManager的标准输出(Stdout)看到对应的统计结果。

–end–文章来源地址https://www.toymoban.com/news/detail-715141.html

到了这里,关于Flink集群搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Flink 本地单机/Standalone集群/YARN模式集群搭建

    本文简述 Flink 在 Linux 中安装步骤,和示例程序的运行。需要安装 JDK1.8 及以上版本。 下载地址:下载 Flink 的二进制包 点进去后,选择如下链接: 解压 flink-1.10.1-bin-scala_2.12.tgz ,我这里解压到 soft 目录 解压后进入 Flink 的 bin 目录执行如下脚本即可 进入 Flink 页面看看,如果

    2024年02月05日
    浏览(45)
  • 基于Hadoop搭建Flink集群详细步骤

    目录 1.xftp上传flink压缩包至hadoop102的/opt/software/目录下 2.解压flink压缩包至/opt/module/目录下 3. 配置flink-conf.yaml 4.配置masters 5.配置workers 6.配置环境变量my_env.sh 7.重启环境变量 8.分发/opt/module/flink-1.13.0和/etc/profile.d/my_env.sh 9.另外两台重启环境变量 10.开启hadoop集群和flink集群 11.浏

    2024年02月09日
    浏览(69)
  • Flink三种模式介绍&集群的搭建

    目录 Flink是什么  Flink部署模式 会话模式(Session Mode ) 单作业模式(Per-Job Mode) 应用模式(Application Mode) Flink集群搭建 Standalone运行模式  会话模式 单作业模式部署 应用模式部署 YARN运行模式  会话模式部署 单作业模式部署 应用模式部署 Flink是“数据流上的有状态计算”

    2024年02月09日
    浏览(37)
  • 206.Flink(一):flink概述,flink集群搭建,flink中执行任务,单节点、yarn运行模式,三种部署模式的具体实现

    Flink官网地址:Apache Flink® — Stateful Computations over Data Streams | Apache Flink Flink是一个 框架 和 分布式处理引擎 ,用于对 无界 和 有界 数据流进行 有状态计算 。 无界流(流): 有定义流的开始,没有定义结束。会无休止产生数据 无界流数据必须持续处理 有界流(批): 有定

    2024年02月11日
    浏览(49)
  • 搭建单机版K8S运行Flink集群

    环境要求 操作系统: CentOS 7.x 64位 Kubernetes版本:v1.16.2 Docker版本:19.03.13-ce Flink版本:1.14.3 使用中国YUM及镜像源  1.安装Kubernetes: 1.1 创建文件:/etc/yum.repos.d/kubernetes.repo,内容如下: 1.2  执行安装命令:  1.3 启动kubelet服务并设置开机自启: 2.安装Docker: 2.1 创建文件:

    2023年04月26日
    浏览(48)
  • k8s 搭建基于session模式的flink集群

    不废话直接上代码,都是基于官网的,在此记录一下 Kubernetes | Apache Flink flink-configuration-configmap.yaml jobmanager-service.yaml  Optional service, which is only necessary for non-HA mode. Session cluster resource definitions # jobmanager-session-deployment-non-ha.yaml taskmanager-session-deployment.yaml  kubectl apply -f xxx.ya

    2024年02月10日
    浏览(36)
  • 【梳理】k8s使用Operator搭建Flink集群(高可用可选)

    参考:部署验证demo 安装cert-manager依赖 Jetstack/cert-manager 是 Kubernetes 生态系统中的一款开源项目,它提供了一种自动化的方式来管理 TLS 证书的生命周期 Flink Kubernetes Operator 支持:原生部署native(默认)和独立部署standalone 可以使用部署规范中的 mode 字段设置部署模式。 FlinkD

    2024年04月14日
    浏览(34)
  • 大数据Flink(五十七):Yarn集群环境(生产推荐)

    文章目录 Yarn集群环境(生产推荐) 一、准备工作

    2024年02月13日
    浏览(44)
  • Flink-1.17.0(Standalone)集群安装-大数据学习系列(四)

    机器信息 Hostname k8s-master k8s-node1 k8s-node2 外网IP 106.15.186.55 139.196.15.28 47.101.63.122 内网IP 172.25.73.65 172.25.73.64 172.25.73.66 master slave1 slave2 slave3 安装Scala 从官网( The Scala Programming Language )下载 Scala版本 链接: https://pan.baidu.com/s/1-GAeyyDOPjhsWhIp_VV7yg?pwd=3fws 提取码: 3fws  2.1 在集群(

    2024年02月08日
    浏览(51)
  • Doris+Flink搭建数据平台

    Doris 作为一款开源的 MPP 架构 OLAP 数据库,能够运行在绝大多数主流的商用服务器上。 安装:官网Doris安装 务必关注点 : 1 设置系统最大打开文件句柄数 2 Linux 操作系统版本需求 3 软件需求(Java,GCC) 4 机器角色分配(下图画线部分是重点,预防脑裂!) 设计好前置环境,开始

    2024年02月13日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包