- 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 架构中,批处理视图和流视图有单独的代码库。为了查询和获取结果,需要合并代码库。不维护单独的代码库/视图并将它们合并是一种痛苦,但 Kappa 架构解决了这个问题,因为它只有一个实时视图,因此不需要合并代码库。
这并不意味着 Kappa 架构取代了 Lambda 架构,它完全取决于用例和应用程序来决定哪种架构更可取。
下图展示了 Apache Flink 作业执行架构。
程序
它是一段在 Flink 集群上运行的代码。
客户
它负责获取代码(程序)并构建作业数据流图,然后将其传递给JobManager。它还检索作业结果。
工作经理
从Client接收到Job Dataflow Graph后,它负责创建执行图。它将作业分配给集群中的TaskManager并监督作业的执行。
任务管理器
它负责执行JobManager分配的所有任务。所有任务管理器以指定的并行度在各自的插槽中运行任务。它负责将任务的状态发送给JobManager。
Apache Flink 的特点
Apache Flink 的特点如下:
它有一个流处理器,可以运行批处理和流程序。
它可以以闪电般的速度处理数据。
API 可用于 Java、Scala 和 Python。
提供所有常用操作的API,方便程序员使用。
以低延迟(纳秒)和高吞吐量处理数据。
它的容错能力。如果节点、应用程序或硬件出现故障,不会影响集群。
可以轻松与Apache Hadoop、Apache MapReduce、Apache Spark、HBase等大数据工具集成。
可以定制内存管理以实现更好的计算。
它具有高度可扩展性,可以扩展到集群中的数千个节点。
Apache Flink 中的窗口化非常灵活。
提供图形处理、机器学习、复杂事件处理库。