Flink学习之旅----初始Flink

Apache Flink是一款开源的分布式流处理框架,支持实时流处理和批处理,具备高性能、高可用性和准确性。Flink的特点包括流式优先、容错、可伸缩和性能优势。它能够处理来自应用、传感器、文件系统等数据源的数据,并将其存储于数据库、文件系统等地。Flink的执行引擎灵活,能同时支持流处理和批处理的数据传输模型,通过调整缓存块的超时阈值,用户可以在系统延迟和吞吐量之间灵活权衡。

Flink简介

Apache Flink是一个开源的分布式,高性能,高可用,准确的流处理框架
主要由Java代码实现
支持实时流处理和批处理(流处理的一种)批数据只是流数据的一个极限特例
Flink原生支持迭代计算,内存管理和程序优化

Flink特点

流式优先(连续处理)
容错(有状态的计算)
可伸缩(可支持上千个节点)
性能(高吞吐,低延迟)

数据来源

Flink的数据来源可以由 应用,传感器,文件系统和储存,日志消息

数据存储

将收集,处理之后的数据可以存放到 应用,数据库,文件系统和存储,日志消息

架构图

在这里插入图片描述

底层部署: 部署分为三种情况: 本地部署 单独集群 公用yarn 云服务器
核心部分: 分布式流式处理引擎;API分成两种:DataStream 流式数据处理 DataSet 批处理
实现部分:DataStream实现的是Event处理API Table对API封装(SQL处理)
DataSet实现的是FlinkML(机器学习) Gelly (图处理) Table (批处理 SQL处理)

基本组件介绍

Data Source(数据源)----->Transformations(具体的数据处理)------>Data Sink(数据输出)

流处理和批处理

简介

在大数据处理领域,批处理任务与流处理任务一般被认为是两种不同的任务,一个大数据框架一般会被设计为只能处理其中一种任务,这两种数据传输模式都是两个极端,对应的流处理对低延迟和批处理对高吞吐量的要求

流处理

对于一个流处理系统,其节点数据传输的标准模型是:当一条数据被处理完成后,序列化到缓存中,然后立刻通过网络传输到下一个节点,由下一个节点继续处理

批处理

对于一个批处理系统,其节点间数据传输的标准模型是:当一条数据被处理完成之后,序列化到缓存中,并不会立刻通过处理后的数据通过网络传输到下一个节点,当缓存写满,就持久化到本地硬盘上,当所有数据都被处理完成后,才开始将处理后的数据通过网络传输到下一个节点

Flink同时处理流处理和批处理的原理

Flink的执行引起采用了一种十分灵活的方式,同时支持了这种数据传输模型
Flink以固定的缓存块为单位进行网络数据传输,用户可以通过设置缓存超时时值指定缓存块的传输时机,如果存储快超时值为0,则Flink的数据传输方式类似于上文所提到流处理系统的标准模型,此时系统可以获得最低的处理延迟
如果缓存块的超时值为无限大,则Flink的数据传输方式类似于上文所提到批处理系统的标准模型,此时系统可以获得最高的吞吐量
同时缓存块的超时值也可以设置为0到无限大之间的任意值,缓存块的超时阈值越小,则Flink流处理执行引擎的数据处理延迟越低,但吞吐量也会降低,反之亦然,通过调整缓存块的超时阈值,用户可根据需求灵活地权衡系统延迟和吞吐量

Flink vs storm vs sparkStreaming对比

在这里插入图片描述
在这里插入图片描述

Flink广发集成

Flink与开源大数据处理生态系统中的很多项目都有集成。Flink可以运行在yarn上,与HDFS协程工作,从kafka读取数据,可以执行Hadoop程序代码,可以链接多种数据存储系统
flink控制offset(kafka zk)
redis

Flink应用场景分析

优化电商网站的实时搜索结果
针对数据分析团队提供实时流处理服务
网络/传感器检测和错误检测
商业智能分析ETL

小结

今天就分享到这里,希望这篇文章可以让你对Flink有一个基础的认识,让我们开启Flink的学习之旅吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值