云计算与大数据技术 验证性实验指导 实验实践11. Flink流式计算引擎及实践.pdf

云计算与大数据技术 验证性实验指导 实验实践11. Flink流式计算引擎及实践.pdf

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

1.Flink的简介

大数据计算分为离线计算和实时计算,其中离线计算就是我们通常说的批计算,代表技术是

HadoopMapReduce、Hive等;实时计算也被称作流计算,代表技术是ApacheStorm、Heron、

ApacheKafka(KafkaStreams)、ApacheSpark(SparkStreaming)以及ApacheFlink。Flink是一

个优秀的分布式流式处理框架,它通过将批数据视为有界流、流数据视为无界流的方式统一了批处理和

流处理的编程模型。

在一些应用场景数据是一个一个来的,是一组有序的数据序列,我们称它为“数据流”;而另一些应

用场景的数据,本身就是一批同时到来,是一个有限的数据集,我们称之为批量数据或数据集。处理数

据流,在应用场景中来一个就处理一个,这种数据处理模式就叫作实时计算或流计算。处理批量数据,

在应用场景中来一批,一批读入、一起计算,这种数据处理模式就叫作离线计算或批计算。

1.1FLink的简介和特点

ApacheFlink是一分布式大数据处理引擎和框架,用于在无边界和有边界数据流上进行有状态的计

算。Flink不仅可以运行在包括YARN、Mesos、Kubernetes在内的多种资源管理框架上,还支持在裸

机集群上独立部署。

流式处理的特点是无边界和实时的,不需要针对整个数据集进行处理,而是对系统传输的每个数据

执行操作,因此流数据处理能更真实的反映我们的生活和工作方式应用场景。

Flink是为了提升流处理而创建的平台,所以它适用于各种需要非常低延迟(微秒到毫秒级)的实时

数据处理场景,比如阿里的实时计算平台特别是在双十一期间都能平稳运行,计算峰值能够达到每秒40

亿条记录,数据量达到7TB每秒,它的计算平台就是采用了Flink流处理技术。

Flink特点

Flink实现了真正的实时流处理,支持低延迟、高吞吐、Exactly-once语义。Flink是基于事件的、

有状态的、高性能分布式流式数据处理。主要特性包括:批流一体化、精密的状态管理、事件时间支

持、精确一次的、状态一致性保障等。

(1)批与流一体化

有界的离线批处理特点是有界、持久、大量,需要访问整个数据集才能完成的计算工作,一般用于

离线统计。无界的流处理特点是无界、实时,无需针对整个数据集执行操作,而是对通过系统传输的每

个数据项执行操作,一般用于实时统计。

(2)有状态的管理

流计算在大多数的场景下是增量计算,数据逐条处理,每次计算是在上一次计算结果之上进行处

理,称为有状态处理,这就需要一种机制将上一次的计算结果进行存储,因此引入了流计算特有的

State(状态)计算。Flink一直认为,如果没有良好的状态支持,就不会有有效的流,它支持高效容

错的状态管理,保证在任何时间都能计算出正确的结果。

(3)支持事件时间(EventTime)和处理时间(Processingtime)语义

事件时间(EventTime)是指事件产生的时间,它通常由事件中的时间戳描述。处理时间

(Processingtime)是指事件被处理时机器当前的系统时间,与机器相关,默认的时间属性就是

ProcessingTime,可以在代码中设置。事件即使无序到达甚至延迟到达,数据流都能够计算出精确的

结果。

(4)精确一次(exactlyonce)传递

精确一次(exactlyonce)传递语义就是确保数据的准确性,不丢失,不重复。Exactly-Once是

Flink流处理系统的核心特性之一,Flink通过Checkpoint机制与两阶段提交组合,让Flink有了exactly-

once的能力。

1.2Spark和Flink的比较

在Spark的应用场景中,一切都是由批次组成的,离线数据是一个大批次,而实时数据是由一个一

个无限的小批次组成的。而在Flink的应用场景中,一切都是由流组成的,离线批处理数据

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档