设为首页 收藏本站
查看: 1115|回复: 0

[经验分享] 1.2 Introduction to Apache Flink(Flink介绍)

[复制链接]

尚未签到

发表于 2018-11-28 07:25:43 | 显示全部楼层 |阅读模式
  无限数据集的连续处理
  在我们详细了解Flink之前,让我们在更高层级审查处理数据时可能遇到的数据集的类型以及您可以选择处理的执行模型的类型。这两个想法经常是混合的,它们很清楚地分开它们。
  首先,两种类型数据集
  无限:连续附加的无限数据集
  有限的:有限的,不变的数据集
  传统上被认为是有界或“批量”数据的许多真实字数据集实际上是***数据集。无论数据存储在HDFS或基于日志的系统(如Apache Kafka)中的一系列目录中,都是如此。
  ***数据集的示例包括但不限于:
  终端用户与移动或Web应用程序进行交互
  物理传感器提供测量
  金融市场
  机器日志数据
  其次,两种类型的执行模式
  流式处理:只要数据生成,生成的数据就会被连续的处理
  批处理:在有限的时间内执行并运行到完整的处理,完成时释放计算资源
  使用任一类型的执行模型来处理任一类型的数据集都是可能的,但不一定是最优的。例如,尽管窗口化,状态管理和乱序数据存在潜在问题,批处理执行长期以来一直应用于***数据集。
  Flink依赖于流式执行模型,这是一种直观适用于处理***数据集的流程:流执行是对连续生成的数据进行连续处理。数据集的类型和执行模型的类型之间的对齐在精度和性能方面提供了许多优点。
  特点:为什么选择Flink?
  Flink是分布式流处理的开源框架:
  提供准确的结果,即使在无序或数据迟到的情况下也是如此;
  具有状态和容错能力,可以在保证一次性应用状态的同时无故障地从故障中恢复;
  大规模执行,在数千个节点上运行,具有非常好的吞吐量和延迟特性;
  之前,我们讨论了将数据集(有界对***)的类型与执行模型的类型(批次与流式)的对齐。 Flink的许多功能如下所示 - 状态管理,无序数据处理,灵活的窗口 - 对于在***数据集上计算准确的结果至关重要,并由Flink的流式执行模式启用。
  Flink保证用于状态计算的一次性语义。 “有状态”意味着应用程序可以维护一段时间内已处理的数据的聚合或汇总,Flink的检查点机制可以确保在发生故障时应用程序状态的一次语义。
  完全一次状态
DSC0000.png

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

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

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

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

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

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

  Flink,流模型和有界数据集
  如果您已经查看了Flink的文档,您可能已经注意到使用***数据的DataStream API以及处理有限数据的DataSet API。
  在这个写作的早些时候,我们引入了流式执行模型(“连续执行的处理,一次事件”),直观地适用于***数据集。那么有界数据集如何与流处理范例有关?
  在Flink的情况下,这种关系是很自然的。有界数据集可以简单地被视为***数据集的特殊情况,因此可以将上面列出的所有相同的流概念应用到有限数据。
  Flink的DataSet API的行为正是如此。有限数据集在Flink内被处理为“有限流”,在Flink如何管理有界数据集和***数据集之间只有一些细微差别。
  因此,有可能使用Flink来处理有界数据和***数据,两个API都运行在相同的分布式流执行引擎上 - 一个简单而强大的架构。
  The “What”:(Flink模块层次架构图)
DSC0007.png

  部署模式
  Flink可以在云中或在内部,独立的群集或由YARN或Mesos管理的群集上运行。
  运行
  Flink的核心是分布式流数据流引擎,这意味着数据是一次处理事件而不是一系列批次,这是一个重要的区别,因为这样可以帮助许多Flink的弹性和性能功能。
  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在处理后发送数据

  一个发达的生态系统对于数据进出Flink程序的有效移动是必要的,Flink支持广泛的连接器到数据源和汇的第三方系统。
  如果您有兴趣了解更多信息,我们已收集有关Flink生态系统的信息。
  关键外包和后续步骤
  总而言之,Apache Flink是一个开源流处理框架,可以消除通常与开源流引擎相关联的“性能与可靠性”折衷,并在两个类别中始终保持一致。 接下来介绍,我们建议您尝试我们的快速入门,下载最新的稳定版本的Flink,或查看文档。
  我们鼓励您加入Flink用户邮件列表,并与社区分享您的问题。 我们在这里帮助您充分利用Flink。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-640482-1-1.html 上篇帖子: MYSQL+APACHE+PHP静态安装apache实验 下篇帖子: linux apache mysql php 源码安装总结(lamp)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表