概述和要求
什麼是 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 檔案,資料庫,訊息佇列等。已有許多第三方聯結器可用,或者你可以輕鬆建立自己的聯結器。