📜  什么是 Apache Flink?

📅  最后修改于: 2022-05-13 01:56:18.143000             🧑  作者: Mango

什么是 Apache Flink?

在当前这一代,Apache Flink 是一个大的巨型工具,无非是 4G 的大数据。它是真正的流处理框架。 Flink 的内核(core)是一个流式运行时,提供分布式处理、容错。 Flink 以低延迟的持续高速处理事件。它以闪电般的速度规划数据。 Apache Flink 是一个大规模的数据处理框架,我们可以在高速生成数据时重用它。这是一个重要的开源平台,可以有效地解决多种类型的条件:

  1. 批量处理
  2. 迭代处理
  3. 实时流处理
  4. 交互式处理
  5. 内存处理
  6. 图处理

Flink 是 MapReduce 的意志,它处理数据的速度比 MapReduce 快 100 倍。它独立于 Hadoop,但它可以使用 HDFS(Hadoop 分布式文件系统)来读取、写入、存储、处理数据。 Flink 没有给出自己的数据仓库系统。它从分布式仓库中获取数据。

为什么选择 Apache Flink?

Flink 是 MapReduce 的意志,它处理数据的速度比 MapReduce 快 100 倍。它独立于 Hadoop,但它可以使用 HDFS 来读取、写入、存储、处理数据。 Flink 没有给出自己的数据仓库系统。它从分布式存储系统中获取数据。 Apache Flink 的关键愿景是克服和降低其他分布式数据驱动机器所面临的复杂性。这是通过将查询优化、数据库系统的通用性以及有效的并行内存和核外算法与 MapReduce 框架集成来实现的。所以,Apache Flink 基本上是基于流模型,Apache Flink 通过使用流电枢来迭代数据。现在,迭代算法的概念被绑定到 Flink 查询优化器中。因此,Apache Flink 的流水线电枢允许以比微批处理基础设施 (Spark) 更低的静态快速回收流数据。

Apache Flink 功能

  1. 低静态和高性能: Apache Flink 提供高性能和低静态,无需任何繁重的配置。它的流水线电枢提供了很高的输出率。它以闪电般的速度处理数据,也被称为大数据的4G。
  2. 容错性: Apache Flink 的容错点基于 Chandy-Lamport 分布式镜头,这种介质提供了强大的厚度保证。
  3. 重复: Apache Flink 为迭代算法(机器读写、图形处理)提供了专门的支持
  4. 内存管理:因此,Apache Flink 中的内存操作可以控制我们在某些运行时操作中使用内存的重要性。
  5. 集成:我们可以流畅地将 Apache Flink 与其他开源数据处理生态系统集成。它可以与 Hadoop 集成,从 Kafka 中提取数据,可以在 YARN 上运行。

Apache Flink – 统一平台

Apache Spark 通过提供不同的平台来解决不同的问题开始了新趋势,但由于其基础批处理机器也将渡槽处理为微批处理而受到限制。 Flink 将同样的能力提前,Flink 可以破解所有类型的大数据问题。 Apache Flink是一个通用的集群计算工具,可以处理批处理、交互处理、流处理、迭代处理、内存处理、图处理。因此,Apache Flink 是下一代大数据平台,也被称为大数据的 4G。 Flink 的内核是一个流式运行时,它还提供了闪电般的速度、容错性、分布式处理、易用性等。主要是,Flink 以持续高速处理数据而真正的低静态。因此,它是一个可以重用真正高速生成的数据的大规模数据处理平台。

Flink 的生态系统

1. 存储/流媒体

Flink 不对应仓库系统;它只是一台计算机。 Flink 可以读取、写入来自不同存储系统的数据以及消费来自流系统的数据。 Flink 可以读写来自不同仓库/流系统的数据,例如

  • HDFS – Hadoop 分布式训练系统
  • Local-FS – 本地文件系统
  • S3 – 来自亚马逊的简单存储服务
  • HBase——在 Hadoop 生态系统中,HBase 基本上是一个 NoSQL 数据库
  • MongoDB——NoSQL 数据库
  • RDBMS——任何关系数据库
  • Kafka – 分布式消息队列
  • RabbitMQ – 消息队列
  • Flume - 主要用于数据收集和聚合工具

下一层是资源/部署操作。 Flink 可以进驻不同的模式

  • 本地模式——在单个节点上,在单个 JVM 中
  • 集群 – 在多节点集群上,具有资源导向器。
    • Standalone - 这是与 Flink 一起打包的废弃资源控制器。
    • YARN – 这是一个非常受欢迎的资源总监,它是 Hadoop 的一部分,(在 Hadoop2.x 中引入)
  • Mesos – 这是一个通用的资源总监。
  • 云——在亚马逊或谷歌云上

即将到来的层是 Runtime——分布式流数据流,也称为 Apache Flink 的内核。这是 flink 的核心层,提供分布式处理、容错、可信任、原生迭代处理能力等。最上层的子种姓是 API 和 Library,为 Flink 提供了不同的能力

2. 数据集 API

它处理其余的数据,它允许石头人在数据集上应用图表、污泥、连接、分组等操作。它主要用于分布式处理。实际上,这是流处理的一个特例,我们有一个有限的数据源。批处理操作也在流式运行时执行。

3.数据流API

它处理不间断的数据闸门。它提供了图表、污泥、更新国家、窗口、总计等丰富多彩的操作,以重用实时数据流。它可以消耗来自彩色流源的数据,并且可以将数据写入不同的污水池。它同时支持Java和 Scala。现在让我们使用一些 DSL(域特定库)工具

4. 表

它使药师能够使用类似 SQL 的表达式语言来执行临时分析,以进行关系闸门和批处理。它可以嵌入 Dataset 和 DataStream API。实际上,它使吸毒者不必编写复杂的法律来重用数据,而不是让他们在 Flink 上运行 SQL 查询。

5. 果冻

它是图处理机器,它允许吸毒者运行一组操作来生成、变形和重用图。 Gelly 还提供了一个算法库来简化图操作的开发。为了有效地处理图,它利用了 Flink 的原生迭代处理模型。我们可以在Java和 Scala 中使用它的 API。

6. Flink 机器学习

它是一个机器学习库,提供直观的 API 和有效的算法来处理机器读写操作。我们用 Scala 编写它。众所周知,机器学习算法本质上是迭代的,Flink 为迭代算法提供了原生支持,以相对有效地处理相同的问题。

Flink 的架构

Flink 以主从方式工作。主节点是集群的指挥节点,从节点是工作节点。如图所示,master 是集群的核心,客户可以在其中提交工作/作业/操作。现在master会将整个工作分成子部分,提交给集群中的slave。通过这种方式,Flink 享有分布式计算能力,这使得 Flink 可以以闪电般的速度重用数据。

有两种类型的颠簸,主结和从结。在 master 节点上,我们配置了 Flink 的 master 守护进程,称为“Job Manager”运行,而在所有从节点上,Flink 的 slave 守护进程称为“Node Manager”。

Flink 的执行模型

  • 程序——发明者编写了操作程序。
  • 解析和优化——在这一步中,法律解析、类型提取器和优化都完成了。
  • 数据流图 - 每个作业都转换为数据流入图。
  • 作业管理器——现在作业主管将任务安排在任务主管上;保留数据流入元数据。工作主管分散驱动并监控中间任务结果
  • 任务管理器 - 任务在任务主管上执行,它们是工作人员的颠簸。