flink架构及原理

一、flink分层架构

在这里插入图片描述

高级API层:包含机器学习及Flink SQL API等库。对批处理和流处理进行了统一。
API层:主要包含 Flink 的流处理API 和批处理API
执行引擎:Flink 的执行处理,Flink 的执行引擎基于流处理实现。
资源层:Flink 任务执行的物理资源,主要有 本地(JVM) , 集群(yarn),云端(GCE/EC2)等,flink1.11以上版本也支持k8s部署。

二、flink系统架构

在这里插入图片描述
Client:Flink Client 用于与JobManger建立连接,进行Flink 任务的提交。Client会将Flink任务组装为一个 JobGraph并进行提交。一个JobGraph是一个flink dataflow,其中包含了一个Flink程序的:JobID、Job名称、配置信息、一组JobVertex等。
JobManger:Flink系统协调者,负责接收job任务并调度job的多个task执行。同时负责job信息的收集和管理TaskManger。
TaskManger:负责执行计算的Worker,同时进行所在节点的资源管理(包括内存,cup,网络),启动时向JobManger汇报资源信息

三、flink任务部署流程

flink目前支持本地,yarn,k8s等多种部署方案。

3.1、flink任务yarn部署流程

在这里插入图片描述
flink yarn client 负责与yarn RM 进行通信及资源申请
jobManger 和taskManger 分别申请Container 资源运行各自的进程。
jobManger 和yarn AM 属于同一个Container中,从而 yarn AM 可进行申请Container及调度TaskManger
HDFS 用于数据的存储,如checkpoints, savepoints 等数据

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Flink是一个开源的流式处理框架,可以用于构建大规模、高可靠性的实时数据处理应用程序。它提供了丰富的API和工具,支持批处理和流处理,并且能够支持事件时间处理和状态管理。 Flink的主要原理是基于流式数据流动进行计算。它将数据流划分为多个事件,然后对每个事件进行处理和转换。在流处理的过程中,Flink能够提供事件时间处理功能,即根据事件发生的时间进行计算,而非数据到达的时间。这样可以解决数据乱序和延迟等问题,并实现更准确的计算结果。 Flink的实践可分为三个步骤: 1. 数据准备:首先需要准备输入数据,可以是实时的数据流或者是批处理的数据。可以通过读取文件、连接数据库或者使用消息队列等方式获取数据。 2. 程序开发:根据需求和业务逻辑,使用Flink提供的API编写代码,对数据进行处理和转换。可以使用Flink的窗口操作、状态管理等功能来实现复杂的计算逻辑。 3. 集群部署:将开发好的程序部署到Flink的集群上进行运行。Flink提供了分布式计算能力,可以进行大规模的并行处理。在部署过程中,需要配置集群环境、资源分配、数据源连接等。 Flink的教学课件主要包括以下内容: 1. Flink简介:介绍Flink的概念、优势和适用场景。 2. Flink基础:讲解Flink的核心概念、架构和工作原理。 3. 数据处理:介绍Flink的数据处理模型和API,包括数据流、窗口操作、事件时间处理等。 4. 状态管理:讲解如何在Flink中管理状态和容错机制,以及如何处理乱序和延迟数据。 5. 集群部署与调优:介绍Flink的集群部署方式、资源管理、调度策略和性能优化等内容。 6. 实践案例:通过实例演示Flink在实际项目中的应用,包括流式推荐、实时统计和实时预测等。 总之,Flink原理与实践全套教学课件将帮助学习者全面了解Flink原理和使用方法,并通过实例演示帮助学习者掌握Flink在实际项目中的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值