Flink系列三:Flink架构、独立集群搭建及Flink on YARN模式详解

news2024/11/16 13:39:27

一、Flink架构

Flink 是一个分布式系统,需要有效分配和管理计算资源才能执行流应用程序。它集成了所有常见的集群资源管理器,例如Hadoop yarn,但也可以设置作为独立集群甚至库运行。

Flink 集群剖析

Flink 运行时由两种类型的进程组成:一个 JobManager (作业管理器)和一个或者多个 TaskManager(任务管理器)。

可以通过多种方式启动 JobManager 和 TaskManager:直接在机器上作为standalone 集群启动、在容器中启动、或者通过YARN等资源框架管理并启动。

流程简要说明:

我们编写的flink代码在本地会被构建为一个数据流程图Dataflow graph(类似于spark中的DAG有向无环图,其实就是我们的代码逻辑),之后会将这个Dataflow graph提交给JobManager并被拆分为一个一个的个task,这些task会被发送到TaskManager中的TaskSlot执行,TaskManager也会返回task的状态信息给JobManager。

节点功能: 

JobManager:决定何时调度下一个 task(或一组 task)、对完成的 task 或执行失败做出反应、协调 checkpoint、并且协调从失败中恢复等

TaskManagers(也称为 worker):执行作业流的 task,并且缓存和交换数据流。

必须始终至少有一个 TaskManager,在 TaskManager 中资源调度的最小单位是 task slot(槽)。 task slot 的数量表示并发处理 task 的数量,意一个 task slot 中可以执行多个算子。

(可以将Task Slot类比为线程池,而将task类比为线程,便于理解)

下面是官方文档原文参考:

二、Flink独立集群搭建与使用(Standalone

1、上传解压

在华为云镜像站下载flink-1.15.2安装包并上传到linux中解压

tar -xvf flink-1.15.2-bin-scala_2.12.tgz 

2、配置环境变量

2.1 vim /etc/profile

export FLINK_HOME=/usr/local/soft/flink-1.15.2
export PATH=$PATH:$FLINK_HOME/bin

2.2 source /etc/profile (使得环境变量生效 )

3、修改配置文件

3.1  修改flink-conf.yaml文件

jobmanager.rpc.address: master
jobmanager.bind-host: 0.0.0.0
taskmanager.bind-host: 0.0.0.0
taskmanager.host: localhost               #在分发后子节点需要分别修改为noe1和node2
taskmanager.numberOfTaskSlots: 4
rest.address: master
rest.bind-address: 0.0.0.0

3.2 修改 masters文件

master:8081

3.3 修改 workers 文件

node1
node2

4、同步到子节点

scp -r flink-1.15.2 node1:`pwd`
scp -r flink-1.15.2 node2:`pwd`

# 修改node1和node2中地taskmanager.host
taskmanager.host: node1
taskmanager.host: node2

 5、启动Flink独立集群

在主节点启动:

start-cluster.sh                  # stop-cluster.sh(关闭命令)

flink web ui 界面:
http://master:8081

6、提交任务

以Flink系列一写的入门案例代码为例子:

6.1 方式一:将代码打包上传到服务器提交

flink run -c com.shujia.flink.core.Demo1StreamWordCount flink-1.0.jar

注意:任务运行成功的话会一直存在,如果想要取消,可以点击右上角的cancle job停止任务。

6.2 在flink web ui中直接提交

三、Flink on Yarn模式

flink on yarn模式:将flink地任务提交到yarn上运行

首先要启动hadoop集群

1、整合

# 在环境变量中配置HADOOP_CLASSSPATH

vim /etc/profile

export HADOOP_CLASSPATH=`hadoop classpath`  

注意: 要放在最后面,不要放在配置的HADOOP_HOME环境变量之前。

 source /etc/profile

2、Flink on yarn的三种部署模式

2.1  Application Mode(应用模式

特点:

(1)将任务提交到yarn上运行,yarn会为每一个flink地任务启动一个jobmanager和一个或者多个taskmanasger

(2)代码main函数不再本地运行,dataFlow不再本地构建,如果代码报错在本地看不到详细地错误日志,类似于spark中的spark yarn cluster。

        

提交命令:

flink run-application -t yarn-application -c com.shujia.flink.core.Demo1StreamWordCount flink-1.0.jar

本地看不到日志,但是可以查看yarn的日志:

yarn logs -applicationId application_1717039073374_0001

2.2  Per-Job Cluster Mode(单作业模式

特点:

(1)将任务提交到yarn上运行,yarn会为每一个flink地任务启动一个jobmanager和一个或者多个taskmanasger

(2)代码地main函数在本地启动,在本地构建dataflow,再将dataflow提交给jobmanager,如果代码报错再本地可以看到部分错误日志,类似于spark中的spark yarn client模式,

        

提交命令:

flink run -t yarn-per-job -c com.shujia.flink.core.Demo1StreamWordCount flink-1.0.jar

2.3  Session Mode(会话模式

特点:

(1)先再yarn中启动一个jobmanager, 不启动taskmanager

(2)提交任务地时候再动态申请taskmanager

(3)所有使用session模式提交的任务共享同一个jobmanager

(4)类似独立集群,只是集群在yarn中启动了,可以动态申请资源

(5)一般用于测试

        

提交命令:

# 1、先启动会话集群
yarn-session.sh -d

可选参数解释:

-d:分离模式,如果你不想让Flink YARN客户端一直前台运行,可以使用这个参数,即使关掉当前对话窗口,YARN session也可以后台运行。

-jm(--jobManagerMemory):配置JobManager所需内存,默认单位MB。

-nm(--name):配置在YARN UI界面上显示的任务名。

# 2、再提交任务
flink run -t yarn-session -Dyarn.application.id=application_1717075266296_0004  -c com.shujia.flink.core.Demo1StreamWordCount flink-1.0-SNAPSHOT.jar

#或者 在网页中直接提交

杀死yarn集群任务命令:

yarn application -kill application_1717075266296_0004

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1792909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【自然语言处理】【Scaling Law】Observational Scaling Laws:跨不同模型构建Scaling Law

相关博客 【自然语言处理】【Scaling Law】Observational Scaling Laws:跨不同模型构建Scaling Law 【自然语言处理】【Scaling Law】语言模型物理学 第3.3部分:知识容量Scaling Laws 【自然语言处理】Transformer中的一种线性特征 【自然语言处理】【大…

Innodb Buffer Pool缓存机制(三)Innodb Buffer Pool内部组成

一、控制块缓存页 Buffer Pool中默认的缓存页大小和在磁盘上默认的页大小是一样的,都是16KB。为了更好的管理这些在Buffer Pool中的缓存页,InnoDB为每一个缓存页都创建了一些所谓的控制信息,这些控制信息包括该页所属的表空间编号、页号、缓存…

自动控制:自治系统与非自治系统的稳定性分析

自动控制:自治系统与非自治系统的稳定性分析 在自动控制领域,理解自治系统和非自治系统的区别对于分析系统稳定性至关重要。自治系统的运动方程只与系统的状态有关,而非自治系统的运动方程则与系统的状态和时间都有关系。本文将探讨非自治系…

SqlServer2016企业版安装

前言 好久没有知识的累积,最近工作上遇到新的SqlServer2016安装,记录一下 参考文章 SQL Server 2016软件安装包和安装教程 - 哔哩哔哩 (bilibili.com) 安装包准备 需要提前准备软件安装包如下 cn_sql_server_2016_enterprise_x64_dvd_8699450&…

3. 使用tcpdump抓取rdma数据包

系列文章 第1章 多机多卡运行nccl-tests 和channel获取第2章 多机多卡nccl-tests 对比分析第3章 使用tcpdump抓取rdma数据包 目录 系列文章一、准备工作1. 源码编译tcpdump2. 安装wireshark 二、Tcpdump抓包三、Wireshark分析 一、准备工作 1. 源码编译tcpdump 使用 tcpdump…

动物收容所

题目链接 动物收容所 题目描述 注意点 若没有可以收养的动物,则返回[-1,-1]收纳所的最大容量为20000编号随着收养动物的增加自增 解答思路 利用队列先进先出的特点将猫和狗分别存进两个队列中,关键是dequeueAny这个方法中如果此时猫和狗的队列中都有…

【算法无用系列】电影推荐——余弦相似度计算用户相似度原理

【算法无用系列】通过余弦相似度计算电影、用户相似度 话不多说,本文通过电影推荐系统中,基于余弦相似度算法计算出用户相似和电影相似原理。希望可以帮助一些代码不懂的同学一些思路。 记录用户电影评分数据 一般情况来说,会根据用户的行为…

安装Ubuntu桌面系统(虚拟机)

VirtualBox创建虚拟机(为安装Ubuntu桌面系统)-CSDN博客 虚拟机的创建方法如上链接。当虚拟机开始引导之后,便正式开始Ubuntu桌面版的安装过程。Ubuntu桌面版界面做得很漂亮,操作起来也方便,很适合作为入门Linux的操作…

探索安全之道 | 企业漏洞管理:从理念到行动

如今,网络安全已经成为了企业管理中不可或缺的一部分,而漏洞管理则是网络安全的重中之重。那么企业应该如何做好漏洞管理呢?不妨从业界标准到企业实践来一探究竟!通过对业界标准的深入了解,企业可以建立起完善的漏洞管…

Java+SVNCloud+Mysql课程设计

文章目录 1、主要内容2、所需准备3、与sql访问的中间类:SqlMessage4、窗口界面5、main方法 1、主要内容 课程设计,主要通过Javas wing创建窗口,jdbc连接云端mysql数据库进行基本操作,支持随机生成数据并用动态展示数据结果。 先…

重生之 SpringBoot3 入门保姆级学习(16、函数式 Web 编程)

重生之 SpringBoot3 入门保姆级学习(16、函数式 Web 编程) 3.4 函数式 Web 3.4 函数式 Web 个人写过 go 类似于 go gin 框架 1、场景 场景: User RESTful - CRUD GET/user/1 获取1号用户GET/users 获取所有用户POST/user 清求体携带JSON,新…

Java注解使用与自定义

一、什么是注解 注解是元数据的一种形式,它提供有关程序的数据,该数据不属于程序本身。注解对其注释的代码操作没有直接影响。换句话说,注解携带元数据,并且会引入一些和元数据相关的操作,但不会影响被注解的代码的逻…

程序员自我修养

目录 一、技术能力二、持续学习三、问题解决能力四、代码质量五、团队合作六、责任心七、时间与任务管理八、适应变化九、客户导向十、安全性意识十一、文档撰写十二、伦理与法律意识十三、健康生活 程序员作为现代技术行业的核心成员,不仅需要掌握扎实的技术技能&…

在 Java 项目中扫描识别图片中的文字(详细教程)

目录 需求: 步骤: 1、maven配置(pom.xml): 2、下载依赖文件: 3、代码: post进行测试: 测试图片: 测试结果: 需求: 上传图片文件进行扫描…

MongoDB CRUD操作:地理位置应用——通过地理空间查询查找餐厅

MongoDB CRUD操作:地理位置应用——通过地理空间查询查找餐厅 文章目录 MongoDB CRUD操作:地理位置应用——通过地理空间查询查找餐厅地图的扭曲搜索餐厅浏览数据查找当前邻居查找附近所有餐厅查找一定距离内的餐厅使用$geoWithin,不排序使用…

Windows 2000 Server:安全配置终极指南

"远古技术,仅供娱乐" 💭 前言:Windows 2000 服务器在当时的市场中占据了很大的比例,主要原因包括操作简单和易于管理,但也经常因为安全性问题受到谴责,Windows 2000 的安全性真的那么差吗&#x…

kube-promethesu调整coredns监控

K8s集群版本是二进制部署的1.20.4,kube-prometheus对应选择的版本是kube-prometheus-0.8.0 Coredns是在安装集群的时候部署的,采用的也是该版本的官方文档,kube-prometheus中也有coredns的监控配置信息,但是在prometheus的监控页…

主流 RTOS 实时操作系统介绍

主流 RTOS 实时操作系统介绍 1 介绍1.1 概述1.2 RTOS 应用领域1.3 知名实时系统VRTXpSOSOS-9embOSAzure RTOS 【ThreadX 】OpenWrt 【路由】Mbed OS 【ARM 公司开发】VxWorks 【KUKA、ABB、etc】LynxOSQNXNucleusTHREADXuC/OS –II/III 【Silicon Labs 收购,更新频率…

Qt CAN总线发送和接收案例

文章目录 设置比特率类设置比特率类实现 发送数据帧类发送数据帧类的实现m_ui 发送帧界面 连接类连接类实现连接类UI设计 主窗口类主窗口类实现主界面UI 整体UIQT案例 设置比特率类 // 文件: BitRateBox.h // 作用: 定义了一个用于选择比特率的组合框类 BitRateBox&#xff0c…

冯喜运:6.6周四汇市行情怎么看?黄金原油日内短线布局操作

【黄金消息面分析】:周三(6月5日)美市盘初,现货黄金震荡走高,目前交投于2342美元/盎司附近。黄金价格周二下跌超过1%,原因是美元在本周晚些时候美国就业数据公布前趋于稳定,该数据可能为美联储的…