ApacheFlink简介
对无界数据集的连续处理
在我们详细介绍Flink之前,让我们从更高的层面上回顾处理数据时可能遇到的数据集的类型以及您可以选择处理的执行模型的类型。这两个想法经常被混淆,清楚地区分它们是有用的。
首先,两种类型的数据集
- 无界:连续追加的无限数据集
- 有界:有限的,不变的数据集
传统上被认为是有限或“批量”数据的许多实际数据集实际上是无界数据集。无论数据是存储在HDFS上的目录序列还是像Apache Kafka这样的基于日志的系统中,都是如此。
无界数据集的例子包括但不限于:
- 最终用户与移动或Web应用程序进行交互
- 物理传感器提供测量
- 金融市场
- 机器日志数据
其次,有两种执行模式
- 流式传输:只要数据正在生成,就会连续执行的处理
- 批处理:在有限的时间内执行处理并运行完成,完成后释放计算资源
尽管不一定是最佳的,但可以用任何一种类型的执行模型来处理任一类型的数据集。例如,尽管在窗口化,状态管理和无序数据方面存在潜在的问题,批处理执行早已应用于无界数据集。
Flink依赖流式执行模型,这是一个直观的适合处理无界数据集的模型:流式执行是连续处理连续产生的数据。数据集类型与执行模型类型之间的对齐在准确性和性能方面提供了许多优点。
特点:为什么Flink?
Flink是一个分布式流处理的开源框架:
- 提供准确的结果,即使在无序或迟到数据的情况下也是如此
- 是有状态和容错的,可以在保持一次性应用程序状态的同时无缝地从故障中恢复
- 大规模执行,在数千个节点上运行,具有非常好的吞吐量和延迟特性
此前,我们讨论了将数据集的类型(有界还是无界)与执行模型的类型(批量与流媒体)进行对齐。下面列出的许多Flink功能 - 状态管理,无序数据的处理,灵活的窗口 - 对于在无界数据集上计算精确的结果非常重要,并且由Flink的流式执行模型来实现。
- Flink保证有状态计算的一次语义。“有状态的”意味着应用程序可以维护一段时间内已经处理的数据的汇总或汇总,并且Flink的检查点设置机制在发生故障时确保应用程序状态的一次语义。
- Flink支持流处理和窗口事件时间语义。事件时间可以轻松计算事件到达顺序不正确,事件可能延迟到达的流的精确结果。
- 除了数据驱动的窗口,Flink还支持基于时间,计数或会话的灵活窗口。Windows可以通过灵活的触发条件进行定制,以支持复杂的流模式。Flink的窗口可以模拟数据创建环境的实际情况。
- Flink的容错功能是轻量级的,可以让系统保持高吞吐率,同时提供一次性一致性保证。Flink从零数据丢失的故障恢复,而可靠性和延迟之间的折衷可以忽略不计。
- Flink能够提供高吞吐量和低延迟(快速处理大量数据)。下面的图表显示了Apache Flink和Apache Storm的性能,完成了需要流式数据混洗的分布式项目计数任务。
- Flink的保存点提供了一个状态版本管理机制,可以更新应用程序或重新处理历史数据,而且不会丢失状态,停机时间最短。
- Flink设计用于在数千个节点的大型集群上运行,除了独立集群模式之外,Flink还提供对YARN和Mesos的支持。
Flink,流模型和有界数据集
如果您已经查看过Flink的文档,您可能已经注意到用于处理无界数据的DataStream API以及用于处理有界数据的DataSet API。
在本文前面,我们介绍了流式执行模型(“连续执行的处理,一次一个事件”),直观地适用于无界数据集。那么有界数据集如何与流处理范例相关?
在Flink的情况下,这种关系是相当自然的。一个有界数据集可以简单地看作一个无界特例,所以我们可以将上面所有的流式概念应用到有限数据上。
这正是Flink的DataSet API的行为。有界数据集在Flink内部作为“有限流”进行处理,Flink如何管理有界数据集和无界数据集只有一些细微差异。
所以可以使用Flink来处理有界数据和无界数据,这两个API在相同的分布式流式执行引擎上运行 - 一个简单而强大的体系结构。
“什么”:从下往上闪烁
部署模式
Flink可以运行在云环境中,也可以在内部环境中运行,也可以运行在独立的集群上,也可以运行在YARN或Mesos管理的集群上。
运行
Flink的核心是分布式流式数据流引擎,意味着数据一次处理而不是一系列批处理,这是一个重要的区别,因为这是Flink的许多弹性和性能特征.
ApacheFlink简介的更多相关文章
- ApacheCN 大数据译文集 20211206 更新
PySpark 大数据分析实用指南 零.前言 一.安装 Pyspark 并设置您的开发环境 二.使用 RDD 将您的大数据带入 Spark 环境 三.Spark 笔记本的大数据清理和整理 四.将数据汇 ...
- ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- REST简介
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
- const,static,extern 简介
const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...
- HTTPS简介
一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
随机推荐
- jsoup HTML parser hello world examples--转
原文地址:http://www.mkyong.com/java/jsoup-html-parser-hello-world-examples/ Jsoup, a HTML parser, its “j ...
- 关于idlf无法输入中文的解决办法
最近在学习python 但是刚开始写程序的时候发现无法输入中文 上网查发现有不少mac端的IDLF也存在这个问题 导致这个问题的原因可能不唯一 但是大多数原因应该是Mac 系统自带的 Tcl/Tk ...
- 常用sql调优《一》
1. 使用索引,避免在索引列上使用计算. 2.用>=替代> <=替代< 3.用UNION替换OR (适用于索引列) 4.用IN来替换OR 或者 用EXISTS替代IN 5 用W ...
- idea的项目中output框出现乱码
找到tomcat的安装目录中的logging.properties 我的在这里:E:\tools\tomcat\apache-tomcat-8.5.38\conf 改其中的参数 修改前 java.u ...
- 史上最低,低到尘埃,CDR邀你一起嗨购618
盼呀盼,望穿秋水~盼呀盼,何时降价~ 6.4开始,CDR X6全民狂欢618放价活动全面开启 力度之大,范围之广,时间之久,价格之低,都是前所未有的 不负众望,这个618,CDR真的做到一降到底,没有 ...
- servlet实现定时刷新功能
1,继承httpservlet类重写doget个dopost方法 2,发送头消息 response.setHeader("refresh","间隔秒数:url=目标地址& ...
- BZOJ2179: FFT快速傅立叶 FFT实现高精度乘法
Code: #include <cstdio> #include <algorithm> #include <cmath> #include <cstring ...
- 【转】Retina 屏幕下,网页图片的显示兼容
感谢 Apple,带来了 Retina 屏幕的革命,让我们可以在电子显示屏上享受到印刷级的分辨率.由于分辨率的提升,网页中的文字.Flash 和 SVG 内容显示得比原来更加精细,但网页中的图片却变得 ...
- There are multiple modules with names that only differ in casing.
client?4c0e:153 ./src/components/Paginate.vue There are multiple modules with names that only differ ...
- composer install或者update 出错
composer install或者update 出错Your requirements could not be resolved to an installable set of package ...