概述和要求
什么是 Flink
与 Apache Hadoop 和 Apache Spark 一样 ,Apache Flink 是一个社区驱动的开源框架,用于分布式大数据分析。Flink 使用 Java 编写,具有 Scala,Java 和 Python API,允许批量和实时流分析。
要求
- 类似 UNIX 的环境,例如 Linux,Mac OS X 或 Cygwin;
- Java 6.X 或更高版本;
- [可选] Maven 3.0.4 或更高版本。
堆
执行环境
Apache Flink 是一个数据处理系统,是 Hadoop MapReduce 组件的替代品。它具有自己的运行时而不是构建在 MapReduce 之上。因此,它可以完全独立于 Hadoop 生态系统工作。
ExecutionEnvironment
是执行程序的上下文。根据你的需要,你可以使用不同的环境。
-
JVM 环境 :Flink 可以在单个 Java 虚拟机上运行,允许用户直接从 IDE 测试和调试 Flink 程序。使用此环境时,你只需要正确的 maven 依赖项。
-
本地环境 :为了能够在正在运行的 Flink 实例上运行程序(而不是在 IDE 中),你需要在计算机上安装 Flink。请参阅本地设置 。
-
集群环境 :以完全分布式方式运行 Flink 需要独立或纱线集群。有关详细信息,请参阅群集设置页面或此幻灯片共享 。mportant__:工件名称中的
2.11
是 scala 版本,请确保与你系统中的版本匹配。
蜜蜂
Flink 可用于流或批处理。他们提供三种 API:
- DataStream API :流处理,即无界数据流上的转换(过滤器,时间窗,聚合)。
- DataSet API :批处理,即数据集的转换。
- 表 API :类似于 SQL 的表达式语言(如 Spark 中的数据帧),可以嵌入批处理和流应用程序中。
建筑模块
在最基本的层面上,Flink 由源(s),转换和接收器组成。
在最基本的层面上,Flink 计划由以下部分组成:
- 数据源 :Flink 处理的传入数据
- 转换 :Flink 修改传入数据时的处理步骤
- 数据接收 :Flink 在处理后发送数据的位置
源和接收器可以是本地/ HDFS 文件,数据库,消息队列等。已有许多第三方连接器可用,或者你可以轻松创建自己的连接器。