概述和要求

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