重要: Scalaに依存するMaven アーティファクトはScalaのメジャーバージョンが後ろに付きます。例えば、"2.10" あるいは "2.11"。プロジェクトwiki上のマイグレーションガイドに相談してください。

一般的な構造とプロセスモデル

プロセス

Flinkシステムが開始された場合、JobManagerと1つ以上のTaskManagersを起動します。ジョブマネージャーはFlinkシステムのコーディネータですが、タスクマネージャーは並行プログラムの部分を実行するワーカーです。ローカル モードでシステムを開始する場合、1つのジョブマネージャーとタスクマネージャーは同じJVM内で起動されます。

When a program is submitted, a client is created that performs the pre-processing and turns the program into the parallel data flow form that is executed by the JobManager and TaskManagers. 以下の図はシステム内の異なるアクターとそれらの相互作用を説明します。

Flink 処理モデル

コンポーネントのスタック

ソフトウェア スタックとして、Flinkは多層のシステムです。The different layers of the stack build on top of each other and raise the abstraction level of the program representations they accept:

  • ランタイム層は JobGraphの形でプログラムを受け取ります。ジョブグラフはデータストリームを消費および生成する任意のタスクを持つ一般的な並行データフローです。

  • DataStream API および DataSet API の両方は、個々の編集処理を通してジョブグラフを生成します。データセットAPIはプログラムのための最適化プランを決定するためにオプティマイザを使用しますが、データストリーム APIはストリームビルダーを使用します。

  • ジョブグラフはFlinkで利用可能な様々な配備オプションに応じて実行されます(例えば、ローカル、リモート、YARNなど)。

  • Flinkと同梱されているライブラリとAPIはデータセットあるいはデータストリームAPIプログラムを生成します。These are Table for queries on logical tables, FlinkML for Machine Learning, and Gelly for graph processing.

更に詳しく学ぶために図の中のコンポーネントをクリックすることができます。

Apache Flink: スタック

プロジェクトと依存

Flinkシステムのコードは、複数のサブプロジェクトに分割されます。Flinkプログラムを実装しているプロジェクトが必要とする依存の数を減らすことが目的で、より小さいサブモジュールのより簡単なテストを促進します。

個々のプロジェクトとそれらの依存は下の図で示されます。

Flink サブプロジェクトとそれらの依存

上の図でリスト化されているプロジェクトに加えて、Flinkは現在のところ以下のサブプロジェクトを含んでいます:

  • flink-dist: distribution プロジェクトコンパイルされたコード、スクリプト、および他のリソースを使用可能な最終的なフォルダ構造に集める方法を定義します。

  • flink-quickstart: クイックスタートとチュートリアルのための、スクリプト、maven原型、および例のプログラム。

  • flink-contrib: 初期バージョンの一連のプロジェクトと、ユーザによって提供された便利なツール。後者のコードは主に外部の貢献者によって維持されます。flink-contribに受け入れられているコードについての必要条件は、その他のコードに比べて低いです。

TOP
inserted by FC2 system