クラスタでの実行

Flink プログラムは多くのマシーンのクラスタ上に分散されて実行することができます。プログラムを実行のためにクラスタに送信するには二つの方法があります:

コマンドライン インタフェース

コマンドラインインタフェースはパッケージ化されたプログラム(JARs)をクラスタ(あるいは1つのマシーンセットアップ)にサブミットさせます。

詳細はコマンドラインインタフェース ドキュメントを参照してください。

遠隔環境

リモート環境はクラスタ上で直接Flink Javaプログラムを実行させます。リモート環境はプログラムを実行したいクラスタを指します。

Maven 依存

プログラムをMavenプロジェクトとして開発している場合、以下の依存を使ってflink-clients モジュールを追加する必要があります:

<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-clients_2.10</artifactId>
  <version>1.3-SNAPSHOT</version>
</dependency>

以下はRemoteEnvironmentの使い方を説明します:

public static void main(String[] args) throws Exception {
    ExecutionEnvironment env = ExecutionEnvironment
        .createRemoteEnvironment("flink-master", 6123, "/home/user/udfs.jar");

    DataSet<String> data = env.readTextFile("hdfs://path/to/file");

    data
        .filter(new FilterFunction<String>() {
            public boolean filter(String value) {
                return value.startsWith("http://");
            }
        })
        .writeAsText("hdfs://path/to/result");

    env.execute();
}

プログラムは独自のユーザコードを含んでいるため、アタッチされたコードのクラスと一緒にJARファイルを必要とすることに注意してください。リモート環境のコンストラクタはJARファイル(s)へのパス(s)を取ります。

TOP
inserted by FC2 system