当前位置: 首页 > news >正文

Flink本地模式安装详解

1. 概述

Apache Flink 支持多种安装和运行模式,主要可以分为以下几种:

  • Local(本地)模式
    • 这种模式主要用于学习和测试,所有的 Flink 组件都会在同一个 JVM 进程中运行。这种方式非常适合初学者了解 Flink 的基本概念和操作。
  • Standalone(独立集群)模式
    • 这种模式下,Flink 自身作为一个独立的集群运行,适合用于开发和测试环境。它包括了一个或多个 JobManager 节点和多个 TaskManager 节点,每个节点都是独立的进程。
    • Standalone HA(高可用性)模式:这是 Standalone 模式的扩展,提供了 JobManager 的高可用性,确保即使某个 JobManager 节点失败,集群仍然能够继续运行。
  • On Yarn(YARN 集群)模式
    • 当 Flink 与 Hadoop 集成时,可以利用 YARN 作为资源管理器来启动 Flink 集群。这种方式适合生产环境,因为它允许动态地请求和释放资源,从而实现更好的资源利用率。
  • On Kubernetes 模式
    • Flink 也可以部署在 Kubernetes 集群上,这种方式提供了更加灵活的管理和伸缩能力,特别适合微服务架构的应用。

每种模式都有其特点和适用场景,选择合适的模式取决于具体的使用需求和技术栈。例如,对于简单的测试和开发工作,Local 模式就足够了;而对于生产环境,则可能更倾向于使用 Standalone HA 模式或 On Yarn 模式以获得更好的稳定性和资源管理能力。随着容器化和云原生技术的发展,On Kubernetes 模式也越来越受到欢迎。

2. Local(本地)模式

今天为了快速入门flink,跑通几个例子,快速入门flink,我们使用简单的本地模式启动flink集群,便于我们平时的测试练习。

2.1 软件安装包准备

  • Java环境,安装好JDK,配置好环境变量,JDK要求Java8 或者 Java11及以上版本,笔者使用Java22。
  • 下载好flink的安装包,笔者使用的是1.20.0。
  • 笔者把用到的Java和Flink的安装包都整理放在一起,有需要可以到下面的链接下载。
  • 下载链接:夸克网盘分享

2.2 安装好jdk

Java JDK安装网上挺多教程,这里不再详细介绍,需要的同学可以到网上搜索下教程,安装成功后,会有下面的提示,说明环境已经准备好了。

2.3 安装flink

把flink的安装包下载到你们本地,并且对它做一个解压操作,解压之后,会有一个flink1.20.0文件夹,进到文件夹里面。

tar -xzf flink-1.20.0-bin-scala_2.12.tgz
cd flink1.20.0

2.4 启动集群

flink是解压即安装,解压完之后再通过其bin目录下准备好的本地模式启动的脚本启动,那么flink的集群变启动起来了。

#进入bin目录,执行 start-cluster.sh 脚本
./start-cluster.sh

看到图片里面的打印的日志,可以确定flink集群启动成功了。

2.5 运行一个流作业

解压flink按照包之后,与bin目录通目录有一个examples目录,里面有挺多的例子,我们就挑选其中一个例子提交到我们准备好的flink集群中。

#提交作业
./bin/flink run examples/streaming/WordCount.jar
#查看作业运行的结果
tail -1000f ./log/flink-wu_ming-taskexecutor-0-192.168.5.4.out

提交作业

查看作业执行结果

2.6 关闭集群

完成上面的测试之后,就可以先把刚刚启动起来的集群关闭掉了,待需要的时候再启动起来。

./bin/stop-cluster.sh

3. 总结

本文开头对flink的几种安装模式都做了介绍,并且详细的介绍了我们开发的时候会使用到的本地模式的安装启动停止过程,并且用了一个demo验证集群是否可用,本地模式是比较方便轻量的安装模式,便于我们开发调试使用。


http://www.mrgr.cn/news/64898.html

相关文章:

  • Python并发编程——threading
  • Redis数据类型深度解析与拓展
  • 鸿蒙进阶-AlphabetIndexer组件
  • 完全背包(动态规划):DFS->记忆化搜索->倒序动态规划->循序动态规划->二维->一维
  • Css-常用指令大全
  • el-talble selection行 初始默认勾选
  • Linux第二周作业
  • Android13开发IPV4地址固定
  • 操作系统——计算机系统概述——1.4操作系统结构
  • 【数据结构】二叉树——前中后序遍历
  • 聚类算法综述
  • RC高通滤波器Bode图分析(传递函数零极点)
  • 【Jenkins】 上传docker包并推送到远程仓库
  • 基于YOLO11/v10/v8/v5深度学习的危险驾驶行为检测识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
  • ZYNQ7045之YOLO部署——FPGA-ZYNQ Soc实战笔记1
  • C#中const与readonly的区别:定义、赋值与用途
  • Observability:OpenTelemetry Elastic 分发简介
  • 全网最全的前端学习路线和编程指南
  • 微服务架构深入理解 | 技术栈
  • 基于java+SpringBoot+Vue的古典舞在线交流平台设计与实现
  • 高频电子线路---调幅方法与检波
  • dup函数-文件描述符
  • n1book web1信息收集
  • Boost服务器端的acceptor、io_context和socket的理解
  • 架构师备考-信息安全
  • 基于 Java 的 Spring Boot 和 Vue 的宠物领养系统设计与实现