1.2 Introduction to Apache Flink(Flink介绍)

发布时间:2020-10-25 18:46:21 作者:qq58ee24e2ee7de
来源:网络 阅读:3345

无限数据集的连续处理


在我们详细了解Flink之前,让我们在更高层级审查处理数据时可能遇到的数据集的类型以及您可以选择处理的执行模型的类型。这两个想法经常是混合的,它们很清楚地分开它们。


首先,两种类型数据集


无限:连续附加的无限数据集

有限的:有限的,不变的数据集

传统上被认为是有界或“批量”数据的许多真实字数据集实际上是×××数据集。无论数据存储在HDFS或基于日志的系统(如Apache Kafka)中的一系列目录中,都是如此。


×××数据集的示例包括但不限于:


终端用户与移动或Web应用程序进行交互

物理传感器提供测量

金融市场

机器日志数据


其次,两种类型的执行模式


流式处理:只要数据生成,生成的数据就会被连续的处理

批处理:在有限的时间内执行并运行到完整的处理,完成时释放计算资源

使用任一类型的执行模型来处理任一类型的数据集都是可能的,但不一定是最优的。例如,尽管窗口化,状态管理和乱序数据存在潜在问题,批处理执行长期以来一直应用于×××数据集。


Flink依赖于流式执行模型,这是一种直观适用于处理×××数据集的流程:流执行是对连续生成的数据进行连续处理。数据集的类型和执行模型的类型之间的对齐在精度和性能方面提供了许多优点。


特点:为什么选择Flink?


Flink是分布式流处理的开源框架:


<1>提供准确的结果,即使在无序或数据迟到的情况下也是如此;

<2>具有状态和容错能力,可以在保证一次性应用状态的同时无故障地从故障中恢复;

<3>大规模执行,在数千个节点上运行,具有非常好的吞吐量和延迟特性;

 之前,我们讨论了将数据集(有界对×××)的类型与执行模型的类型(批次与流式)的对齐。 Flink的许多功能如下所示 - 状态管理,无序数据处理,灵活的窗口 - 对于在×××数据集上计算准确的结果至关重要,并由Flink的流式执行模式启用。


<4>Flink保证用于状态计算的一次性语义。 “有状态”意味着应用程序可以维护一段时间内已处理的数据的聚合或汇总,Flink的检查点机制可以确保在发生故障时应用程序状态的一次语义。

完全一次状态


1.2  Introduction to Apache Flink(Flink介绍)


<5>Flink支持流处理和窗口与事件时间语义。事件时间可以很容易地计算准确的结果,这些流量在事件到达时间不一致以及事件延迟到达的地方。

无序流


1.2  Introduction to Apache Flink(Flink介绍)


<6>除了数据驱动的窗口之外,Flink还支持基于时间,计数或会话的灵活窗口。 Windows可以通过灵活的触发条件进行定制,以支持复杂的流式传输模式。 Flink的窗口使得可以对创建数据的环境的现实进行建模。

视窗


1.2  Introduction to Apache Flink(Flink介绍)


<7>Flink的容错是轻量级的,允许系统保持高吞吐率,同时提供一致的一致性保证。 Flink从零数据丢失的故障中恢复,而可靠性和延迟之间的折衷可以忽略不计。


1.2  Introduction to Apache Flink(Flink介绍)


<8>Flink能够实现高吞吐量和低延迟(快速处理大量数据)。下面的图表显示了Apache Flink和Apache Storm完成一个需要流数据洗牌的分布式项目计数任务的性能。


1.2  Introduction to Apache Flink(Flink介绍)


<9>Flink的保存点提供了一个状态版本控制机制,使得可以更新应用程序或重新处理历史数据,而不会丢失状态和最少的停机时间。


1.2  Introduction to Apache Flink(Flink介绍)


<10>Flink旨在在具有数千个节点的大型集群上运行,除了独立的集群模式,Flink还为YARN和Mesos提供支持。


1.2  Introduction to Apache Flink(Flink介绍)


Flink,流模型和有界数据集


如果您已经查看了Flink的文档,您可能已经注意到使用×××数据的DataStream API以及处理有限数据的DataSet API。


在这个写作的早些时候,我们引入了流式执行模型(“连续执行的处理,一次事件”),直观地适用于×××数据集。那么有界数据集如何与流处理范例有关?


在Flink的情况下,这种关系是很自然的。有界数据集可以简单地被视为×××数据集的特殊情况,因此可以将上面列出的所有相同的流概念应用到有限数据。


Flink的DataSet API的行为正是如此。有限数据集在Flink内被处理为“有限流”,在Flink如何管理有界数据集和×××数据集之间只有一些细微差别。


因此,有可能使用Flink来处理有界数据和×××数据,两个API都运行在相同的分布式流执行引擎上 - 一个简单而强大的架构。


The “What”:(Flink模块层次架构图)


1.2  Introduction to Apache Flink(Flink介绍)


<1>部署模式


Flink可以在云中或在内部,独立的群集或由YARN或Mesos管理的群集上运行。


<2>运行


Flink的核心是分布式流数据流引擎,这意味着数据是一次处理事件而不是一系列批次,这是一个重要的区别,因为这样可以帮助许多Flink的弹性和性能功能。


<3>APIs


Flink的DataStream API适用于实现数据流转换(例如,过滤,更新状态,定义窗口,聚合)的程序。

DataSet API适用于实现数据集转换(例如过滤,映射,加入,分组)的程序。

Table API是用于关系流和批处理的类似SQL的表达式语言,可以轻松嵌入到Flink的DataSet和DataStream API(Java和Scala)中。

流式SQL允许在流和批表上执行SQL查询。语法基于Apache Calcite。

图书馆


Flink还包括用于复杂事件处理,机器学习,图形处理和Apache Storm兼容性的专用库。


Flink等框架


在最基本的层面上,Flink程序由以下组成:


数据源(Source):Flink处理的传入数据

转换(Transformations):Flink修改传入数据时的处理步骤

数据接收器(Sink):Flink在处理后发送数据


1.2  Introduction to Apache Flink(Flink介绍)


一个发达的生态系统对于数据进出Flink程序的有效移动是必要的,Flink支持广泛的连接器到数据源和汇的第三方系统。


如果您有兴趣了解更多信息,我们已收集有关Flink生态系统的信息。


关键外包和后续步骤


总而言之,Apache Flink是一个开源流处理框架,可以消除通常与开源流引擎相关联的“性能与可靠性”折衷,并在两个类别中始终保持一致。 接下来介绍,我们建议您尝试我们的快速入门,下载最新的稳定版本的Flink,或查看文档。


我们鼓励您加入Flink用户邮件列表,并与社区分享您的问题。 我们在这里帮助您充分利用Flink。


推荐阅读:
  1. 如何获取SickOS 1.2 Flag
  2. Ansible1.2新特性roles的介绍和使用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

introduction on flin he ct

上一篇:Angular4 中常用的指令入门总结

下一篇:Zabbix 2.4.5自带MySQL监控的配置使用教程

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》