概述和要求

Apache HadoopApache Spark 一样 ,Apache Flink 是一个社区驱动的开源框架,用于分布式大数据分析。Flink 使用 Java 编写,具有 Scala,Java 和 Python API,允许批量和实时流分析。

要求

  • 类似 UNIX 的环境,例如 Linux,Mac OS X 或 Cygwin;
  • Java 6.X 或更高版本;
  • [可选] Maven 3.0.4 或更高版本。

StackOverflow 文档

执行环境

Apache Flink 是一个数据处理系统,是 Hadoop MapReduce 组件的替代品。它具有自己的运行时而不是构建在 MapReduce 之上。因此,它可以完全独立于 Hadoop 生态系统工作。

ExecutionEnvironment 是执行程序的上下文。根据你的需要,你可以使用不同的环境。

  1. JVM 环境 :Flink 可以在单个 Java 虚拟机上运行,​​允许用户直接从 IDE 测试和调试 Flink 程序。使用此环境时,你只需要正确的 maven 依赖项。

  2. 本地环境 :为了能够在正在运行的 Flink 实例上运行程序(而不是在 IDE 中),你需要在计算机上安装 Flink。请参阅本地设置

  3. 集群环境 :以完全分布式方式运行 Flink 需要独立或纱线集群。有关详细信息,请参阅群集设置页面此幻灯片共享 。mportant__:工件名称中的 2.11scala 版本,请确保与你系统中的版本匹配。

蜜蜂

Flink 可用于流或批处理。他们提供三种 API:

  • DataStream API :流处理,即无界数据流上的转换(过滤器,时间窗,聚合)。
  • DataSet API :批处理,即数据集的转换。
  • 表 API :类似于 SQL 的表达式语言(如 Spark 中的数据帧),可以嵌入批处理和流应用程序中。

建筑模块

在最基本的层面上,Flink 由源(s),转换和接收器组成。

StackOverflow 文档

在最基本的层面上,Flink 计划由以下部分组成:

  • 数据源 :Flink 处理的传入数据
  • 转换 :Flink 修改传入数据时的处理步骤
  • 数据接收 :Flink 在处理后发送数据的位置

源和接收器可以是本地/ HDFS 文件,数据库,消息队列等。已有许多第三方连接器可用,或者你可以轻松创建自己的连接器。