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--

相关推荐
189228048612 小时前
NW728NW733美光固态闪存NW745NW746
大数据·服务器·网络·人工智能·性能优化
若兰幽竹6 小时前
【从零开始编写数据库:基于Python语言实现数据库ToyDB的ACID特性】
数据库·python
宇钶宇夕6 小时前
S7-200 SMART CPU 密码清除全指南:从已知密码到忘记密码的解决方法
运维·服务器·数据库·程序人生·自动化
周杰伦的稻香6 小时前
MySQL密码管理器“mysql_config_editor“
数据库·mysql
云朵大王6 小时前
SQL 视图与事务知识点详解及练习题
java·大数据·数据库
czhc11400756637 小时前
LINUX712 MYSQL;磁盘分区;NFS
数据库·mysql·adb
不太可爱的大白7 小时前
Mysql:分库分表
数据库·mysql
十五年专注C++开发8 小时前
hiredis: 一个轻量级、高性能的 C 语言 Redis 客户端库
开发语言·数据库·c++·redis·缓存
萤火虫儿飞飞8 小时前
从基础加热到智能生态跨越:艾芬达用创新重构行业价值边界!
大数据·人工智能·重构
seanmeng20228 小时前
Apache Iceberg on AWS - 通过Firehose流式导入数据到Iceberg表
大数据