Flink プログラムは多くのマシーンのクラスタ上に分散されて実行することができます。プログラムを実行のためにクラスタに送信するには二つの方法があります:
コマンドラインインタフェースはパッケージ化されたプログラム(JARs)をクラスタ(あるいは1つのマシーンセットアップ)にサブミットさせます。
詳細はコマンドラインインタフェース ドキュメントを参照してください。
リモート環境はクラスタ上で直接Flink Javaプログラムを実行させます。リモート環境はプログラムを実行したいクラスタを指します。
プログラムを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)を取ります。