没有合适的资源?快使用搜索试试~ 我知道了~
Flink从入门到精通
资源推荐
资源详情
资源评论
Flink
1 Flink 介绍
1.1 Flink 定义
Apache Flink 是⼀个框架和分布式处理引擎,⽤于对⽆界和有界数据流进⾏有状态计算。
1.2 Flink 发展历程
2008 年,Flink 的前身是柏林理⼯⼤学⼀个研究性项⽬(Stratosphere)。
2014 被 Apache 孵化器所接受,然后迅速地成为了 ASF 的顶级项⽬之⼀。2014 年 12 ⽉,Flink 项⽬完成孵化。
2015 年 4 ⽉,Flink 发布了⾥程碑式的重要版本 0.9。
2019 年 1 ⽉,阿⾥收购 Flink 产品所属公司。
2019 年 8 ⽉,阿⾥巴巴将内部版本 Blink 开源,合并⼊ Flink 1.9.0 版本。
1.3 Flink 应⽤场景
电商⾏业
实时报表、⼴告投放、实时推荐
物流配送及服务
订单状态跟踪,信息推送
物联⽹
实时数据采集,实时报警
银⾏和⾦融⾏业
实时结算,实时检测异常⾏为,⻛险检测
教育⾏业、政务⾏业、旅游⾏业、保险⾏业、医疗⾏业、社交⾏业、服务⾏业等
1.4 数据处理框架的演变
1.4.1 传统数据处理结构
事务处理
分析处理
1.4.2 有状态的流处理
1.4.3 流处理的演变
Lamda 架构
Lamda架构:⽤两套系统,同时保证低延迟和结果准确
在批处理层,数据流⾸先被持久化保存到批处理数据仓库中,积累⼀段时间后,再使⽤批处理引擎进⾏计算。批处
理层能保证数据的结果的准确性。即使程序运⾏失败,重启即可。此处,批处理引擎⼀般扩展性好,即使数据量增
多,可以通过增加节点数来横向扩展。
在流处理nfcu,实时处理数据,流处理引擎⽣成预处理结果。但数据流会有事件乱序等问题,使⽤早期的流处理引
擎,只能得到⼀个近似准确的计算结果,相当于牺牲了⼀定的准确性来换取实时性。
应⽤层需要将来⾃批处理层准确但有延迟的预处理结果和流处理层实时但不够准确的预处理结果融合。
Kappa 架构
使⽤⼀个流处理层
1.5 流处理的应⽤场景
Event-driven Application
事件驱动的应⽤程序是有状态的应⽤程序,它从⼀个或多个事件流中获取事件,并通过触发计算、状态更新或外部
操作来响应传⼊的事件。
Stream & BatchAnalytics
分析类⼯作从原始数据中提取信息和⻅解。批次分析是通过对记录事件的有限数据集进⾏批量查询或应⽤程序来执
⾏的,将结果写⼊存储系统或以报表的形式呈现。流式分析则是批次分析特例,及来⼀条数据或者⼀批次数据后进
⾏查询,将结果实时写⼊存储系统或以报表的形式呈现。
DataPipelines & ETL
提取-转换-加载(ETL)是在存储系统之间转换和移动数据的常⽤⽅法。通常会周期性地触发ETL作业,将数据从事务
性数据库系统复制到分析性数据库或数据仓库。数据管道的作⽤与ETL作业类似。它们可以转换和加⼯数据,并将
数据从⼀个存储系统移动到另⼀个存储系统。然⽽,数据管道以连续的流模式运⾏,⽽不是周期性地触发。因此,
数据管道能够从持续产⽣数据的源读取记录,并以低延迟将其移动到⽬的地。
1.6 Flink 的特点
基于流的世界观
在 flink 的世界观中,⼀切都是由流组成的,离线数据是有界限的流,实时数据是⼀个没有界限的流,这就是所谓
的有界流和⽆界流。
分层 API
越顶层越抽象,表达含义越简明,使⽤越⽅便
越底层越具体,表达能⼒越丰富,使⽤越灵活
Ip(节点) 服务
192.168.10.131(node01) jobManager、taskManager
192.168.10.132(node02) taskManager
192.168.10.133(node03) taskManager
低延迟、⾼吞吐
结果的准确性
精确⼀次(exactly-once)的状态⼀致性保证
低延迟,每秒处理数百万个事件,毫秒级延迟
与众多常⽤存储系统的连接
⾼可⽤,动态扩展,实现 7*24 ⼩时全天候运⾏
2 Flink 部署
2.1 Standalone 模式
独⽴模式(Standalone)是部署 Flink 最基本最简单的⽅式,所需要的所有的 Flink 组件,都只是操作系统上运⾏的
⼀个 JVM 进程。
独⽴模式是独⽴运⾏的,不依赖任何外部的资源管理平台。但资源不⾜,或者出现故障,没有⾃动扩展或者重新分
配资源的保证,必须⼿动处理。所以独⽴模式⼀般只⽤于开发测试或者作业⾮常少的场景下。
(1) https://archive.apache.org/dist/flink/ 下载 Flink 安装包 flink-1.14.4-bin-scala_2.12.tgz
(2)上传⽂件 flink-1.14.4-bin-scala_2.12.tgz 到 node01 虚拟机的⽬录 /opt/backup
(3)解压 tar -zxvf /opt/backup/flink-1.14.4-bin-scala_2.12.tgz -C /usr/local/software/
(4)修改 conf/flink-conf.yaml 配置⽂件
# 指定jobmanager主机名
jobmanager.rpc.address: node01
# 指定jobmanager的端⼝号
jobmanager.rpc.port: 6123
# 指定jobmanager的可⽤堆内存⼤⼩(单位MB)
jobmanager.heap.size: 1024m
# 指定每个taskmanager的可⽤内存⼤⼩(单位MB)
taskmanager.memory.process.size: 1728m
# 指定每个taskmanager的taskSlot数
taskmanager.numberOfTaskSlots: 1
剩余214页未读,继续阅读
资源评论
Xuzixuan的博客
- 粉丝: 10
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功