大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(正在更新!)

章节内容

上节完成了如下的内容:

  • Flink 重要角色
  • TaskManager
  • ResourceManager
  • 各个组件之间的关系
  • Sink Task SubTask 等等内容

安装模式

Flink支持多种安装模式:

  • local(本地):单机模式,一般本地开发调试
  • Standalone独立模式:Flink自带集群,自己管理资源调度,部分生产环境会这么用
  • YARN模式:计算资源统一由Hadoop YRAN管理,生产环境大部分是这种

基础环境

基于我们之前的大数据的环境:

  • JAVA_HOME 之前已经配好了
  • SSH 免密登录 三台节点之间 之前也配置好了

集群规划

我们对应的机器是:

  • h121 2C4G
  • h122 2C4G
  • h123 2C2G

下载安装

选择的版本是:Flink 1.11.1 版本

shell 复制代码
https://www.apache.org/dyn/closer.lua/flink/flink-1.11.1/flink-1.11.1-bin-scala_2.12.tgz

你也可以直接使用 wget 下载,目前我们登录到服务器 h121 节点上

shell 复制代码
cd /opt/software/
wget https://archive.apache.org/dist/flink/flink-1.11.1/flink-1.11.1-bin-scala_2.12.tgz

等待下载完毕:

解压配置:

shell 复制代码
tar -zxvf flink-1.11.1-bin-scala_2.12.tgz

处理过程如下:

解压完成之后,移动到目录下:

shell 复制代码
mv flink-1.11.1 ../servers/
cd ../servers/
ls

Standalone模式部署

上述我们已经完成了 h121 服务器节点的配置安装,接下来我们修改配置文件。

Standalone 模式是一种相对简单的 Flink 集群部署方式,适合在拥有固定资源的环境中运行 Flink 应用程序。所有的 Flink 组件(如 JobManager 和 TaskManager)都是手动配置和启动的,没有依赖外部的资源管理系统。

启动与配置

  • 手动启动:在 Standalone 模式下,JobManager 和 TaskManager 需要通过脚本手动启动。可以通过 Flink 提供的启动脚本(如 start-cluster.sh)来启动整个集群,或者单独启动每个组件。
  • 配置文件:Standalone 模式的配置主要通过 flink-conf.yaml 文件进行,配置内容包括 JobManager 和 TaskManager 的数量、内存和 CPU 资源、网络设置等。
shell 复制代码
cd /opt/servers/flink-1.11.1/conf
vim flink-conf.yaml

我们修改的内容有这么两处:

shell 复制代码
jobmanager.rpc.address: h121.wzk.icu
taskmanager.numberOfTaskSlots: 2

修改内容如下所示:

Works

不同的版本可能叫不同的名字,我这里是 works

shell 复制代码
cd /opt/servers/flink-1.11.1/conf
vim workers

写入如下的内容,我们有三台云节点:

shell 复制代码
h121.wzk.icu
h122.wzk.icu
h123.wzk.icu

写入的结果如下图所示:

Master

shell 复制代码
cd /opt/servers/flink-1.11.1/conf
vim masters

写入如下的内容:

shell 复制代码
h121.wzk.icu:8081

写入的结果如下图:

服务启动

暂时就可以先启动进行测试了:

shell 复制代码
cd /opt/servers/flink-1.11.1/bin/
./start-cluster.sh

启动过程如下所示:

启动结果

这里要注意,由于我们之前配置过Spark环境,Spark的Web也是8081端口。

记得把Spark的服务停掉(暂时用不到Spark相关的内容了)。

启动后,我们访问:

shell 复制代码
http://h121.wzk.icu:8081/#/overview

可以通过 JPS 命令查看主机当前的状态:(不需要的你可以停掉)

  • Hadoop
  • HDFS
  • Flink
  • 等等

测试效果

官方提供的Demo,可以运行测试一下是否正常

shell 复制代码
cd /opt/servers/flink-1.11.1/bin
./flink run ../examples/streaming/WordCount.jar

执行结果如下图:

可视化的页面也可以看到:

特点与优缺点

优点

  • 简洁易用:Standalone 模式不需要额外的资源管理系统,配置相对简单,特别适合在资源固定的小型集群中运行。
  • 独立性强:这种模式下,Flink 集群不依赖于外部系统,可以在没有 Yarn、Kubernetes 等资源管理平台的环境中独立运行。
  • 低延迟:由于不涉及外部资源调度系统,Standalone 模式在资源调度上的延迟相对较低,适合需要低延迟任务调度的场景。

缺点

  • 资源弹性差:由于没有集成外部资源管理系统,Standalone 模式的资源调度和管理相对固定,不支持动态扩展或缩减资源。这在面对变化的工作负载时,可能会导致资源浪费或不足。
  • 管理复杂:在大规模集群中,手动管理多个 JobManager 和 TaskManager 可能变得复杂,特别是在需要高可用性和故障恢复的情况下。
  • 缺乏高级特性:相比于集成 Yarn 或 Kubernetes 的部署模式,Standalone 模式缺乏一些高级的资源管理特性,如自动化资源分配、动态扩展、集群隔离等。

使用场景

  • 开发与测试:Standalone 模式非常适合用于 Flink 应用的开发与测试阶段,因为它配置简单,易于快速部署和运行作业。
  • 小型集群:在资源固定且规模较小的集群中,Standalone 模式可以提供足够的灵活性和控制力。
  • 边缘计算:在某些资源有限的环境(如边缘计算或嵌入式设备)中,Standalone 模式可以提供一种轻量级的分布式计算解决方案。

扩展性与限制

  • 扩展性有限:虽然 Standalone 模式允许在固定资源下进行扩展,但由于缺乏动态资源管理,扩展能力有限,难以应对大规模或动态变化的工作负载。
  • 适应性:对于需要频繁调整资源的场景,Standalone 模式可能不太适用,但在资源固定且作业负载相对稳定的情况下,它可以提供稳定可靠的服务。

添加依赖

xml 复制代码
<build>
  <plugins>
    <!-- 打jar插件 -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>2.4.3</version>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>shade</goal>
          </goals>
          <configuration>
            <filters>
              <filter>
                <artifact>*:*</artifact>
                <excludes>
                  <exclude>META-INF/*.SF</exclude>
                  <exclude>META-INF/*.DSA</exclude>
                  <exclude>META-INF/*.RSA</exclude>
                </excludes>
              </filter>
            </filters>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

pom结构如下所示:

相关推荐
P.H. Infinity17 分钟前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天20 分钟前
java的threadlocal为何内存泄漏
java
Json_1817901448029 分钟前
An In-depth Look into the 1688 Product Details Data API Interface
大数据·json
caridle32 分钟前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
^velpro^37 分钟前
数据库连接池的创建
java·开发语言·数据库
苹果醋341 分钟前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
秋の花1 小时前
【JAVA基础】Java集合基础
java·开发语言·windows
小松学前端1 小时前
第六章 7.0 LinkList
java·开发语言·网络
Wx-bishekaifayuan1 小时前
django电商易购系统-计算机设计毕业源码61059
java·spring boot·spring·spring cloud·django·sqlite·guava
customer081 小时前
【开源免费】基于SpringBoot+Vue.JS周边产品销售网站(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·开源