Apache Flink - 简介


Apache Flink 是一个可以处理流数据的实时处理框架。它是一个开源流处理框架,适用于高性能、可扩展且准确的实时应用程序。它具有真正的流模型,并且不将输入数据作为批处理或微批处理。

Apache Flink 由 Data Artisans 公司创立,现由 Apache Flink Community 在 Apache License 下开发。迄今为止,该社区拥有超过 479 名贡献者和 15500 多项提交。

Apache Flink 上的生态系统

下图显示了 Apache Flink 生态系统的不同层 -

Apache Flink 上的生态系统

贮存

Apache Flink 有多个选项可以读取/写入数据。以下是基本存储列表 -

  • HDFS(Hadoop分布式文件系统)
  • 本地文件系统
  • S3
  • RDBMS(MySQL、Oracle、MS SQL 等)
  • MongoDB
  • 数据库
  • 阿帕奇·卡夫卡
  • 阿帕奇水槽

部署

您可以在本地模式、集群模式或云端部署 Apache Fink。集群模式可以是standalone、YARN、MESOS。

在云上,Flink 可以部署在 AWS 或 GCP 上。

核心

这是运行时层,提供分布式处理、容错、可靠性、本机迭代处理能力等。

API 和库

这是 Apache Flink 的最顶层也是最重要的一层。它具有负责批处理的 Dataset API 和负责流处理的 Datastream API。还有其他库,例如 Flink ML(用于机器学习)、Gelly(用于图形处理)、Tables for SQL。该层为 Apache Flink 提供了多种功能。