Flink集群运行模式--Standalone运行模式

Flink集群运行模式--Standalone运行模式

  • 一、实验目的
  • 二、实验内容
  • 三、实验原理
  • 四、实验环境
  • 五、实验步骤
    • [5.1 部署模式](#5.1 部署模式)
      • [5.1.1 会话模式(Session Mode)](#5.1.1 会话模式(Session Mode))
      • [5.1.2 单作业模式(Per-Job Mode)](#5.1.2 单作业模式(Per-Job Mode))
      • [5.1.3 应用模式(Application Mode)](#5.1.3 应用模式(Application Mode))
    • [5.2 Standalone运行模式](#5.2 Standalone运行模式)
    • [5.2.1 会话模式部署](#5.2.1 会话模式部署)
    • [5.2.2 单作业模式部署](#5.2.2 单作业模式部署)
    • [5.2.3 应用模式部署](#5.2.3 应用模式部署)

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计2391字,阅读大概需要3分钟

🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿

个人网站:https://jerry-jy.co/

一、实验目的

掌握Standalone集群搭建的过程。

掌握Flink的三种部署模式

二、实验内容

1、搭建Flink集群--Standalone运行模式

2、集群的启动,停止、提交作业

三、实验原理

独立模式是独立运行的,不依赖任何外部的资源管理平台;

当然独立也是有代价的:如果资源不足,或者出现故障,没有自动扩展或重分配资源的保证,必须手动处理。所以独立模式一般只用在开发测试或作业非常少的场景下。

四、实验环境

硬件:x86_64 CentOS 7.5 服务器

软件:JDK1.8,Flink-1.17.1,Hadoop-3.3.3,IntelliJ Idea-2022

五、实验步骤

开始实验之前需要先了解Flink集群部署的三种模式

5.1 部署模式

在一些应用场景中,对于集群资源分配和占用的方式,可能会有特定的需求。Flink为各种场景提供了不同的部署模式,主要有以下三种:会话模式(Session Mode)、单作业模式(Per-Job Mode)、应用模式(Application Mode)。

它们的区别主要在于:集群的生命周期 以及资源的分配方式 ;以及应用的main方法到底在哪里执行------客户端(Client)还是JobManager。

5.1.1 会话模式(Session Mode)

5.1.2 单作业模式(Per-Job Mode)

5.1.3 应用模式(Application Mode)



这里我们所讲到的部署模式,相对是比较抽象的概念。实际应用时,一般需要和资源管理平台结合起来,选择特定的模式来分配资源、部署应用。

5.2 Standalone运行模式

5.2.1 会话模式部署

我们在上一节用的就是Standalone集群的会话模式部署。

提前启动集群,并通过Web页面客户端提交任务(可以多个任务,但是集群资源固定)。



5.2.2 单作业模式部署

Flink的Standalone集群并不支持单作业模式部署。因为单作业模式需要借助一些资源管理平台。

5.2.3 应用模式部署

应用模式下不会提前创建集群,所以不能调用start-cluster.sh脚本。我们可以使用同样在bin目录下的standalone-job.sh来创建一个JobManager。



具体步骤如下:

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

java 复制代码
[root@hadoop102 flink-1.17.1]$ nc -lk 7777

(1)进入到Flink的安装路径下,将应用程序的jar包放到lib/目录下。

java 复制代码
[root@hadoop102 flink-1.17.1]$ mv FlinkTutorial-1.0-SNAPSHOT.jar lib/

(2)执行以下命令,启动JobManager。

java 复制代码
[root@hadoop102 flink-1.17.1]$ bin/standalone-job.sh start --job-classname com.jerry.wordcount.WordCountUnboundedDemo

这里我们直接指定作业入口类,脚本会到lib目录扫描所有的jar包。

(3)同样是使用bin目录下的脚本,启动TaskManager。

java 复制代码
[root@hadoop102 flink-1.17.1]$ bin/taskmanager.sh start

(4)在hadoop102上模拟发送单词数据。

java 复制代码
[root@hadoop102 ~]$ nc -lk 7777
java 复制代码
hello java
hello flink

(5)在hadoop102:8081地址中观察输出数据

(6)如果希望停掉集群,同样可以使用脚本,命令如下。

java 复制代码
[root@hadoop102 flink-1.17.1]$ bin/taskmanager.sh stop
[root@hadoop102 flink-1.17.1]$ bin/standalone-job.sh stop

--end--

相关推荐
Leon-Ning Liu11 分钟前
【真实经验分享】 ORA-600 [qesmaGetTblSeg1]
数据库·oracle
与数据交流的路上14 分钟前
MySQL 优化 -- 相关
数据库·mysql
Rooting++25 分钟前
为什么mysql的表字段的collation会自动变
数据库·mysql
Wch1G0z8A27 分钟前
Google 开源了啥,让 AI Agent 碰数据库不再是定时炸弹
数据库·人工智能·开源
暴躁小师兄数据学院43 分钟前
【AI大数据工程师特训笔记】第14讲:Linux操作系统与shell脚本
大数据·人工智能·笔记
tedcloud1231 小时前
cc-switch评测:多AI Coding Agent管理工具详解
数据库·人工智能·sql·学习·自动化
土狗TuGou1 小时前
SQL内功笔记 · 第8篇:事务的四大特性与隔离级别
数据库·笔记·后端·sql·mysql·oracle
2601_959986242 小时前
M4Markets:把工具可用性做到位——逻辑梳理与提示整理
大数据·人工智能
Nturmoils2 小时前
一台 2C2G 服务器上的 KingbaseES 安装记录
数据库
薛定猫AI3 小时前
Codex 与 Claude Code 安装配置完全指南
大数据·人工智能·架构