Flink原理与实践全套教学课件.pptxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第一章

大数据技术概述;大数据的5个V

Volume:数据量大

Velocity:数据产生速度快

Variety:数据类型繁多

Veracity:数据真实性

Value:数据价值;单台计算机无法处理所有数据,使用多台计算机组成集群,进行分布式计算。

分而治之:

将原始问题分解为多个子问题

多个子问题分别在多台计算机上求解

将子结果汇总

比较经典的模式和框架:

MPI

MapReduce;MPI:MessagePassingInterface消息传递接口

使用分治法将问题分解成子问题,在不同节点上分而治之地求解。

MPI提供数据发送和数据接收操作:

将本进程中某些数据发送给其他进程

接收其他进程的数据

自行设计分治算法,将复杂问题分解为子问题

优势:以很细的粒度控制数据的通信

劣势:难度大,开发调试时间成本高;程序员只需要定义两个操作:Map和Reduce

案例:三明治制作

Map阶段将原材料在不同的节点上分别进行处理

Shuffle/Group阶段将不同的中间食材进行组合

Reduce阶段最终将一组中间食材组合成三明治成品

学习门槛比MPI低;单条数据被称为事件(Event)或者被称为一条数据或一个元素。

事件按照时序排列会形成一个数据流(DataStream)。

数据流一般是无界(Unbounded)的,某段有界数据流(BoundedDataStream)可以组成一个数据集。;批处理(BatchProcessing):对一批数据进行处理

案例:微信运动统计步数,银行信用卡账单统计…

数据总量大,计算非常耗时

流处理

数据本质上是流,流处理(StreamProcessing)对数据流进行处理

案例:查看电商实时销售业绩、股票交易…;流处理一般使用生产者-消费者模型

股票交易案例:辅助人工决策

实现消费者侧代码,以10秒为一个时间窗口,统计窗口内的交易情况

可扩展性:随着数据不断增多,能否保证我们的程序能够快速扩展到更多的节点上。

数据倾斜:数据没有均匀分布到分布式系统各个节点上。

容错性:系统崩溃重启后,之前的那些计算如何恢复。

时序错乱:数据到达的时间和实际发生的时间是不一致的,有一定的延迟,需要设计等待策略。

Flink:为流处理而生。;MapReduce编程模型的一种实现,逐渐形成了一整套生态??。

主要组件:

HadoopMapReduce:数据处理模型,面向批处理。

HDFS:分布式文件系统,提供存储支持。

YARN:资源调度器,分配计算资源。

其他著名组件:

Hive:SQL-on-Hadoop

Hbase:基于HDFS的分布式数据库,毫秒级实时查询

Kafka:消息队列;Spark初衷:改良HadoopMapReduce的编程模型,提高运行速度,优化机器学习性能。

易用性:比MapReduce更好用,提供了多种编程语言API,支持

SQL、机器学习和图计算。

速度快:尽量将计算放在内存中。;消息队列:数据集成和系统解耦,某个应用系统专注于一个目标。

企业将各个子系统独立出来,子系统之间通过消息队列来发送数据。;主要面向流处理

流处理框架经历了三代演进

Storm

SparkStreaming

Flink

事件投递保障:Exactly-Once:一条数据只影响一次最终结果

毫秒级的延迟;Lambda架构:批处理层、流处理层、在线服务层

批处理层:等待一个批次数据,使用批处理框架计算,得到一个非实时的结果。比如,凌晨0点开始统计前一天所有商品的计算次数,计算需要几个小时。

流处理层:使用流处理框架生层结果。早期的流处理框架不成熟,结果近似准确。

在线服务层:将来自批处理层准确但有延迟的预处理结果和流处理层实时但不够准确的预处理结果做融合。;Kafka等消息队列可以保存更长时间的历史数据,它不仅起到消息队列的作用,也可以存储数据,替代数据仓库。

Flink流处理框架解决了事件乱序下计算结果的准确性问题。

程序员只维护一套流处理层,维护成本低。;延迟和吞吐;滚动窗口(TumblingWindow):定义一个固定的窗口长度,长度是一个时间间隔。

滑动窗口(SlidingWindow):定义一个固定的窗口长度和一个滑动长度。

会话窗口(SessionWindow):窗口长度不固定,根据会话间隔(SessionGap)确定窗口,两个事件之间的间隔大于SessionGap,则两个事件被划分到不同的窗口中。;EventTime:事件实际发生的时间

事件发生时,EventTime就已经确定

ProcessingTime:事件被流处理框架处理的时间

不同节点、系统内不同模块、同一数据不同次处理都会产生不同的ProcessingTime

案例:手机游戏,用户需要与服务器实时交互,游戏根据实时数

文档评论(0)

159****1944 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档