【Flink快速入门-2.Flink 部署模式】

Flink 部署模式

实验介绍

学习大数据组件绕不开的一个话题就是搭建集群,学习 Flink 也一样。上一个实验中我们对 Flink 做了一个初步的介绍,并分别运行了 Flink 的批计算和流计算的 WordCount,本节实验我们将学习 Flink 的集群搭建。

知识点
  • 介绍 Flink 的三种部署模式
  • 搭建 Standalone 伪分布式集群
  • 向集群提交 WordCount 任务

下载安装包

首先打开终端 ,执行命令获取安装包:

# 官网下载,可能慢,可以使用国内镜像源
wget https://archive.apache.org/dist/flink/flink-1.17.2/flink-1.17.2-bin-scala_2.12.tgz  
# 使用国内清华镜像源下载
wget https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.17.2/flink-1.17.2-bin-scala_2.12.tgz
tar -xvf flink-1.17.2-bin-scala_2.12.tgz

将其解压到该目录下。

部署模式介绍

如果你学习过 Spark 的话,那么你应该会觉得接下来的内容似曾相识。在 Flink 中有三种部署模式,分别是 Standalone、Yarn 模式和 Kubernetes。在本次实验中我们的重点是 Standalone 模式,Yarn 和 Kubernetes 只需要了解即可。

Standalone

这里的 Standalone 和 Spark 中的 Standalone 的含义是一样的,就是 Flink 自己来负责资源调度,不依赖于其它工具。

搭建步骤如下:

  1. 将解压好的安装包复制到 /opt/softes/目录下

    sudo cp -r flink-1.17.2 /opt/softes/
    
  2. 进入到 /opt/softes/flink-1.17.2/目录下,启动集群

    sudo cd /opt/softes/flink-1.17.2/
    sudo bin/start-cluster.sh
    

至此,我们已经搭建了一个最简单的 Standalone 模式的集群,也就是伪分布式或者说是单节点的集群。双击桌面的 Firefox 浏览器,打开 [standalone模式部署flink服务的IP]:8081 就会看到下面的界面:

在这里插入图片描述

受限于我们的云主机环境,在实验课程中只能搭建伪分布式的集群。如果需要搭建多台机器组成的 Standalone 模式集群也并不难,只需要在以上步骤的基础上做简单配置即可。

假设要有三台机器,主机名分别为 bigdata1、bigdata2、bigdata3,接下来只需要:

  1. 在 bigdata1 的 Flink 安装包中的 conf/flink-conf.yaml 文件中添加以下内容:

    jobmanager.rpc.address:bigdata1
    
  2. 在 bigdata1 中的 Flink 安装包中的 conf/slaves 文件中添加以下内容:

    bigdata2
    bigdata3
    
  3. 将 bigdata1 中的 Flink 安装包分别拷贝到 bigdata2 和 bigdata3 的相同目录下,然后在 bigdata1 中执行 bin/start-cluster.sh 启动集群。

注意:以上三个步骤的前提是三台机器上都安装了相同的版本的 jdk 和 scala,并且配置了 ssh 免密登录。

Yarn 模式

和 Spark 类似,Flink 同样支持以 Yarn 模式部署 Flink 任务,但是 Hadoop 的版本必须在 2.2 以上。

Yarn 模式的部署分为两种,分别是 Session-Cluster 和 Pre-Job-Cluster。

  1. Session-Cluster

    Session-Cluster 的特点是在提交任务之前,需要先去 Yarn 启动一个 Flink 集群,启动成功之后通过 Flink run 命令往 Flink 集群中提交任务。当 Job 执行完之后,集群并不会关闭,等待下个 Job 提交。这样做的好处是 Job 启动的时间变短,适合规模小执行时间短的作业。

  2. Pre-Job-Cluster

    Pre-Job-Cluster 的特点是一个 Job 对应一个集群,每提交一个 Job,会根据其自身情况单独向 Yarn 申请资源。这样做的好处是各个 Job 使用的资源之间独立,一个作业失败并不会影响到其它作业的正常运行,适合规模大运行时间长的任务。

Kubernetes 模式

随着信息化技术的发展,容器化技术也越来越流行。你可能没有听过 Kubernetes,但是你一定听过 Docker。是的,Kubernetes 和 Docker 类似,也是容器化技术的一种。虽然 Flink 支持基于 Kubernetes 部署,但是在业界好像并没有听到过有哪家企业在使用这种部署模式,所以大家只需要了解即可,不用做过多研究。

提交任务

接下来我们将基于在第一节实验中的批计算代码来学习在 Flink 中的两种任务提交方式。

在 IDEA 中点击 Maven 中的 package 按钮打包,然后将会得到两个 jar 包,一个是没有依赖的,一个是带依赖的。

在这里插入图片描述

界面化提交

在打开的 Flink Web 界面中依次点击 Submit New Job -> Add New,在弹出的窗口中找到项目路径的 target 目录里刚才打好的 jar 包,选择带依赖的点击上传。
在这里插入图片描述

点击上传的 jar 包名称,在弹出的几个输入框中分别输入全类名 com.vlab.wc.BatchWordCount 和并行度 2,点击 Submit 提交。

在这里插入图片描述

命令提交

在 Flink 安装目录下执行以下命令:

cd /usr/local/flink-1.17.2/bin
# 注意替换成你实际的 Jar 包的地址
/usr/local/flink-1.17.2/bin/flink run -m localhost:8081 -p 2 -c com.vlab.wc.BatchWordCount /home/hadoop/hadoopEcoProjects/flinkprojects/FlinkLearning-1.0-SNAPSHOT-jar-with-dependencies.jar /home/hadoop/hadoopEcoProjects/inputs/words.txt

其中 -m 指定提交的主节点地址,-p 指定任务并行度,-c指定要执行任务入口程序的全类名,最后是 jar 包的路径。

在这里插入图片描述

实验总结

本节实验中我们介绍了 Flink 的三种部署模式和 Standalone 模式下的两种任务提交方式。Standalone 模式部署集群是必须要掌握的,由于受限于云主机,所以我们只搭建了伪分布式的集群,如果自己的电脑条件允许,可以尝试搭建由多台节点组成的集群。Yarn 和 Kubernetes 模式只需要了解即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值