Apache Flink:快速、可靠的大规模数据处理引擎

apache-flink

Flink的核心是提供数据分发、通信、分布式计算的流媒体数据流引擎。

主要功能

  • 高性能和低延迟 Flink的数据流运行时只需少量的配置就可以实现高吞吐率和低延迟的处理能力。
  • 支持事件时间和无序事件 Flink通过事件时间语义支持流处理和窗口。 事件时间(Event Time)可以很容易的计算流中事件到达的顺序,和事件可能的延迟。
  • 恰好一次语义的有状态计算 流应用程序可以在运算中保持自定义状态。 Flink的检查点机制确保在出错的情况下恰好一次语义(exactly once)的状态。
  • 高度灵活的流窗口 Flink支持窗口随时间推移、技术、会话、以及数据驱动的窗口。 窗口可以定制灵活的触发条件,以支持复杂的流模式。
  • 连续的流模型和背压(Backpressure) Flink的流运行时有天然的流控制:缓慢下降快源的背压数据。
  • 通过轻量级分布式快照的容错 Flink的容错机制基于Chandy-Lamport的分布式快照。 容错机制是轻量级的,允许系统的高吞吐率同时提供了强大的一致性保证。

批量和流处理在一个系统中

  • 用于流和批处理的一个运行时 对于数据流应用程序和批处理应用程序,Flink用一个普通运行时。 批处理应用程序作为流处理应用程序的特殊情况有效的运行。
  • 内存管理 Flink在JVM中实现了自己的内存管理。 应用程序扩展到超出主存的数据量,减少了垃圾回收的开销。
  • 迭代和增量迭代 Flink有专门的迭代计算支持(应用于机器学习和图形分析)。 增量迭代可以利用计算依赖关系,更快的收敛。
  • 程序优化器 批量程序可以利用避免耗资源的操作及缓存中间数据自动优化。

API和库

  • 流数据应用 DataStream API支持数据流的功能转换。 下面例子演示了如何计算一个数据流的文本的字出现的滑动直方图。
  • 批处理应用程序 Flink的DataSet API可以让你写出漂亮的类型安全的且可维护的Java或者Scala代码。其支持范围广泛的数据类型和丰富的操作。 下面例子显示了图的PageRank算法的核心环。
  • 库生态系统 Flink的堆栈提供了不同使用情况下的高级API:机器学习、图形分析和关系型数据处理。 这些库目前处于大量的开发测试状态。

开发文档

官方网站:https://flink.apache.org
开源地址:https://github.com/apache/flink

打赏支持我整理更多优质资源,谢谢!

打赏编辑

打赏支持我整理更多优质资源,谢谢!

任选一种支付方式

1 1 收藏

资源整理者简介:刘立华

java开发,技术爱好者,乐于助人。 个人主页 · 贡献了32个资源 · 1 ·  


直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1439 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer