- Apache Flink 教程
- Apache Flink - 首页
- Apache Flink - 大数据平台
- 批处理与实时处理
- Apache Flink - 简介
- Apache Flink - 架构
- Apache Flink - 系统需求
- Apache Flink - 设置/安装
- Apache Flink - API 概念
- Apache Flink - 表格 API 和 SQL
- 创建 Flink 应用程序
- Apache Flink - 运行 Flink 程序
- Apache Flink - 库
- Apache Flink - 机器学习
- Apache Flink - 使用案例
- Apache Flink - Flink 与 Spark 与 Hadoop 的比较
- Apache Flink - 结论
- Apache Flink 资源
- Apache Flink - 快速指南
- Apache Flink - 有用资源
- Apache Flink - 讨论
Apache Flink - 架构
Apache Flink 基于 Kappa 架构。Kappa 架构拥有一个单一的处理器 - 流,它将所有输入都视为流,流引擎实时处理数据。在 Kappa 架构中,批处理数据是流处理的一种特殊情况。
下图显示了Apache Flink 架构。
Kappa 架构的关键思想是通过单个流处理引擎来处理批处理和实时数据。
大多数大数据框架都基于 Lambda 架构,Lambda 架构对批处理和流式数据使用单独的处理器。在 Lambda 架构中,您拥有用于批处理和流视图的单独代码库。为了查询和获取结果,需要合并这些代码库。维护单独的代码库/视图并合并它们是一件痛苦的事情,但 Kappa 架构解决了这个问题,因为它只有一个视图 - 实时视图,因此不需要合并代码库。
这并不意味着 Kappa 架构取代了 Lambda 架构,它完全取决于用例和应用程序,以决定哪种架构更可取。
下图显示了 Apache Flink 作业执行架构。
程序
它是您在 Flink 集群上运行的一段代码。
客户端
它负责获取代码(程序)并构建作业数据流图,然后将其传递给 JobManager。它还检索作业结果。
JobManager
在从客户端接收作业数据流图后,它负责创建执行图。它将作业分配给集群中的 TaskManager 并监督作业的执行。
TaskManager
它负责执行 JobManager 分配的所有任务。所有 TaskManager 都在指定的并行度下各自的槽中运行任务。它负责将任务状态发送给 JobManager。
Apache Flink 的特性
Apache Flink 的特性如下:
它拥有一个流处理器,可以运行批处理和流程序。
它可以以闪电般的速度处理数据。
提供 Java、Scala 和 Python 的 API。
为所有常用操作提供 API,程序员非常易于使用。
以低延迟(纳秒级)和高吞吐量处理数据。
具有容错性。如果节点、应用程序或硬件发生故障,不会影响集群。
可以轻松与 Apache Hadoop、Apache MapReduce、Apache Spark、HBase 和其他大数据工具集成。
可以自定义内存管理以获得更好的计算性能。
它具有高度可扩展性,可以在集群中扩展到数千个节点。
Apache Flink 中的窗口功能非常灵活。
提供图处理、机器学习、复杂事件处理库。