IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Flink入门--Flink介绍 -> 正文阅读

[大数据]Flink入门--Flink介绍

-----Flink

1、个人理解:Flink也好,Spark也好,将我们原本需要实现的功能以框架的形式封装好,然后我们如果使用Flink,直接从业务的角度出发,多关心业务,就可以使用。

基本架构图:Flink系统主要由两个组件组成,分别为JobManager和TaskManager,Flink的架构也遵循Master-Slave架构设计原则,JobManager和Master节点,TaskManager为Worker(Slave)节点,所有组件之间的通信都是借助于Akka Framework

Client客户端

   客户端负责将任务提交到集群,与JobManager构建Akka连接,然后将任务提交到JobManager,通过和JobManager之间进行交互获取任务执行状态。客户端提交任务可以采用CLI方式或者通过使用Flink WebUI提交,也可以在应用程序中指定JobManager的RPC网络端口构建ExecutionEnvironment提交Flink应用。

JobManager

   JobManager负责整个Flink集群任务的调度以及资源的管理,从客户端中获取提交的应用,然后根据集群中TaskManager上TaskSlot的使用情况,为提交的应用分配相应的TaskSlots资源并命令TaskManager启动从客户端中获取的应用。JobManager相当于整个集群的Master节点,且整个集群中有且仅有一个活跃的JobManager,负责整个集群的任务管理和资源管理。JobManager和TaskManager之间通过Actor System进行通信,获取任务执行的情况并通过Actor System将应用的任务执行情况发送给客户端。同时在任务执行过程中,Flink JobManager会触发Checkpoints操作,每个TaskManager节点收到Checkpoint触发指令后,完成Checkpoint操作,所有的Checkpoint协调过程都是在Flink JobManager中完成。当任务完成后,Flink会将任务执行的信息反馈给客户端,并且释放掉TaskManager中的资源以供下一次提交任务使用。

TaskManager

   TaskManager相当于整个集群的Slave节点,负责具体的任务执行和对应任务在每个节点上的资源申请与管理。客户端通过将编写好的Flink应用编译打包,提交到JobManager,然后JobManager会根据已经注册在JobManager中TaskManager的资源情况,将任务分配给有资源的TaskManager节点,然后启动并运行任务。TaskManager从JobManager接收需要部署的任务,然后使用Slot资源启动Task,建立数据接入的网络连接,接收数据并开始数据处理。同时TaskManager之间的数据交互都是通过数据流的方式进行的,TaskManager中资源调度的最小单位是任务slot。TaskManager中任务slot的数量指示并发处理任务的数量。请注意,多个operator可以在一个任务slot中执行。

2、分布式流处理开源框架

  • 保证乱序数据的准确性
  • 容错机制,可以无缝的从失败中恢复,并且可以保证精准恢复
  • 大规模分布式
  • 批流一体
  • Flink有状态,可以保持已经处理过的数据
  • Flink支持流处理和窗口事件时间语义
  • 高吞吐量低延迟
  • Flink保存点提供版本控制机制,从而能够更新应用程序,加工历史数据没有丢失并最小的停机时间
  • 基于JVM独立的内存管理

3、Flink流处理流程:Stream Dataflow,从数据源提取数据的操作叫做Source Operator,中间的计算过程统称为Tranformation Operators ,最后结果数据流被称为 sink Operators

?4、名次解释

  • slot:TaskManager 为了对资源进行隔离和增加允许的task数,引用slot的概念,对内存进行隔离,策略是均分,是指TaskManager的并发执行能力,每个slot可以执行job的一整个pipeline
  • 并行度:是指TaskManager实际使用的并发能力,不能多于slot的个数
  • 水位线理解以及计算应用:
    • 理解:水位线是一种衡量Event Time进展的机制,用来处理实时数据中的乱序问题,通常水位线和窗口结合使用来实现的。乱序数据进行窗口处理时,不能无限等待延迟数据到达,当到达特定watermark时,认为在watermark之前的数据已经全部到达并触发窗口计算(即使后面可能还有延迟的数据,也不等了)
    • ?计算公式:?watermark = 进入 Flink 窗口的最大的事件时间(maxEventTime)— 指定的延迟时间(t)
    • 计算实例:模拟向kafka发送30条,数据一秒一条,设置窗口为滑动窗口,大小2s,滑动1s,水位线10s,实际计算结果数据为20条,由于发送数据的最大的事件时间没有到达特定的watermark时间,没有触发窗口计算

输入数据:

输出数据:

?

?5、不同部署模式:Standalone以及On Yarn

  • onyarn模式任务提交流程

  • Yarn Session模式:在YARN之上部署了Flink Session集群(可屏蔽底层不同的运行环境),向Yarn Session集群提交作业(不与YARN交互),多个作业共用集
  • Per Job模式:作业直接提交到YARN上(与YARN交互),一个作业对应一个JobManager,资源隔离
  • Standalone Cluster
    • Master-Slave架构,JobManager运行在Master节点,TaskManager运行在Slave节点,与HDFS/Hadoop无关,Active JobManager挂掉时,通过Zookeeper选举多个Standby JobManager成为Active JobManager来保证高可用


?

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-29 14:48:52  更:2021-07-29 14:48:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 3:10:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码