スタンドアローン クラスタ

このページでは、静的な(しかし異成分から成る)クラスタ上の完全な分散形式 でFlinkを実行する方法を説明します。

必要条件

ソフトウェアの要求

Flinkは全てのUNIX-likeな環境、例えばLinux, Mac OS XおよびCygwin (for Windows) 上で動作し、 1つのマスターノード1つ以上のワーカーノードから成るクラスタを必要とします。システムのセットアップを開始する前に、各ノード上で以下のソフトウェアがインストールされているようにしてください:

  • Java 1.7.x 以上、
  • ssh (リモートコンポーネントを管理するFlinkスクリプトを使うためにsshdが実行されていなければなりません)

クラスタがこれらのソフトウェアの要求を完全に満たしていない場合は、それをインストール/アップグレードする必要があるでしょう。

全てのクラスタノード上でpasswordless SSH同じディレクトリ構造を持つことで、全てを制御するためにスクリプトを使うことができるでしょう。

上に戻る

JAVA_HOME 設定

Flinkはマスターと全てのワーカーノード上でJAVA_HOME 環境変数が設定され、Javaインストレーションのディレクトリを指していることを必要とします。

conf/flink-conf.yaml内でenv.java.homeキーを使ってこの変数を設定することができます。

上に戻る

ダウンロード ページへ行き、すぐに実行可能なパッケージを取得します。Hadoopバージョンに合致するFlinkパッケージを選ぶようにしてください。Hadoopを使う予定がない場合は、任意のバージョンを選んでください。

最新のリリースをダウンロードした後で、書庫をマスターノードにコピーし、それを解凍します:

tar xzf flink-*.tgz
cd flink-*

システムファイルを解凍した後で、conf/flink-conf.yamlを編集することでクラスタのためのFlinkを設定する必要があります。

jobmanager.rpc.addressキーがマスターノードを示すように設定します。jobmanager.heap.mbtaskmanager.heap.mb キーを設定することでJVMが各ノード上で割り当てることができるメインメモリの最大量も定義するべきです。

これらの値はMBで与えられます。ワーカーノードがFlinkシステムに割り当てたいと思うよりも多くのメインメモリを持つ場合は、それらの特定のノード上で環境変数 FLINK_TM_HEAP を設定することでデフォルトを上書くことができます。

最後にワーカーノードとして使用されるべきクラスタの全てのノードのリストを提供する必要があります。したがってHDFS設定と同じようにファイルconf/slavesを編集し、各ワーカーノードのIP/ホスト名を入力します。各ワーカーノードは後でタスクマネージャーを実行するでしょう。

以下の例は3つのノード(10.0.0.1 から 10.0.0.3 のIPアドレスで、ホスト名master, worker1, worker2を持つ)のセットアップを図示し、設定ファイルの内容を示します。これは全てのマシーン上の同じパスでアクセス可能である必要があります。

/path/to/flink/conf/
flink-conf.yaml

jobmanager.rpc.address: 10.0.0.1

/path/to/flink/
conf/slaves

10.0.0.2
10.0.0.3

Flinkディレクトリは各ワーカーの同じパスで利用可能でなければなりません。共通NFSディレクトリを使うか、各ワーカーノードへFlinkディレクトリ全体をコピーすることができます。

詳細および追加の設定オプションについては設定ページ を見てください。

特に、

  • ジョブマネージャーごとに利用可能なメモリの総量 (jobmanager.heap.mb)、
  • タスクマネージャーごとに利用可能なメモリの総量 (taskmanager.heap.mb)、
  • マシーンごとに利用可能なCPUの数 (taskmanager.numberOfTaskSlots)、
  • クラスタ内のCPUの総数 (parallelism.default) および
  • 一時的なディレクトリ (taskmanager.tmp.dirs)

は、とても重要な設定値です。

上に戻る

以下のスクリプトはローカルノードでジョブマネージャーを開始し、slaves ファイルに記載された全てのワーカーノード上でタスクマネージャーを開始するためにSSHを使って接続します。これで、Flinkシステムは準備ができ実行されます。これでローカルノードで実行中のジョブマネージャーは設定されたRPCポートでジョブを受け付けるでしょう。

マスターノードのFlinkディレクトリに居るとすると:

bin/start-cluster.sh

Flinkを停止するために、stop-cluster.sh スクリプトもあります。

上に戻る

ジョブマネージャー/タスクマネージャーのインスタンスをクラスタに追加

bin/taskmanager.shbin/jobmanager.sh スクリプトを使って実行中のクラスタへジョブマネージャーおよびタスクマネージャーを追加することができます。

ジョブマネージャーの追加

bin/jobmanager.sh (start cluster)|stop|stop-all

タスクマネージャーの追加

bin/taskmanager.sh start|stop|stop-all

それぞれのインスタンスを開始/停止したいホスト上でこれらのスクリプトを呼ぶようにしてください。

上に戻る

TOP
inserted by FC2 system