flink我爱编程

Introduction to Apache Flink

2018-01-18  本文已影响69人  小C菜鸟

原文链接

Continuous Processing for Unbounded Datasets

在详细介绍Flink之前,让我们在更高的层次回顾一下当处理数据时可能遇到的 types of datasets 和可以选择的types of execution models。这两种观念经常被合并在一起,其实分开它们很有必要。

First, 2 types of datasets

许多传统上认为有界或“批”的数据集实际上是无界的。无论数据存储在HDFS上的目录中还是像Apache Kafka这样的基于日志的系统中,这都是正确的。
无界的数据集示例包括但不限于:

Second, 2 types of execution models

虽然不一定是最优的,但是可以使用任意一种执行模式来处理这两种类型的数据集。例如,尽管存在窗口,状态管理和无序数据等潜在问题,批处理长期以来一直被应用于无界数据集。
Flink基于直观的处理无界数据集的流式计算模型,流式计算会持续处理不断生成的数据。数据集类型和执行模式类型之间的匹配,不论是在准确性还是性能上都有很大优势。

Features: Why Flink?

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

前面我们讨论了数据集类型(有界vs无界)和执行模型类型(批处理和流式计算)的匹配问题。Flink的许多特性,如状态管理,处理无序数据,灵活的窗口,对于在无界数据集上计算精确的结果都是至关重要的,并且都是由Flink的流式计算模型锁提供。

Flink, the streaming model, and bounded datasets

如果你已经看过Flink的文档,可能已经发现存在处理无界数据集的DataStream API和处理有界数据集的DataSet API。
在文章的前面,我们介绍了对无界数据集的直观适应的流失计算模型(持续的执行处理,一次一个事件)。那么有界数据集如何与流式计算范例相关呢?
在Flink中,这种关系是十分自然的。有界数据集可以简单的看做无界数据集的一个特例,因此可以将前面所述的所有流式概念应用到有界数据上。
Flink的DataSet API实际上也是这样执行的。在Flink内部,有界数据集被当做“有限流”处理。Flink如何管理有界和无界的数据集之间,只有一些细微的差异。
因此,可以使用Flink来处理有界和无界的数据,两种api都在同一个分布式流执行引擎上运行,这是一个简单而强大的架构。

The “What”: Flink from the bottom-up

Deployment modes

Flink可以在云端或在一个独立的集群上运行,或者在一个由YARN或Mesos管理的集群上运行。

Runtime

Flink的核心是分布式流式数据引擎,意味着数据以一次一个事件的形式被处理,这跟批次处理有很大不同。这个保证了上面说的那些Flink弹性和高性能的特性。

APIs

Libraries

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

Flink and other frameworks

从最基本的水平上看,一个Flink程序由下面几部分组成:

Key Takeaways and Next Steps

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

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

上一篇 下一篇

猜你喜欢

热点阅读