Wait the light to fall

集群 Execution

焉知非鱼

Cluster Execution

Flink 程序可以在许多机器组成的集群上分布式运行。有两种方法可以将程序发送到集群上执行。

命令行接口 #

命令行界面让您可以将打包的程序(JAR)提交到集群(或单机设置)。

详情请参考命令行接口文档。

远程环境 #

远程环境可以让你直接在集群上执行 Flink Java 程序。远程环境指向你要执行程序的集群。

Maven 依赖 #

如果你是以 Maven 项目的形式开发程序,你必须使用这个依赖关系添加 flink-clients 模块。

<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-clients_2.11</artifactId>
  <version>1.11.0</version>
</dependency>

例子 #

以下说明了 RemoteEnvironment 的使用。

public static void main(String[] args) throws Exception {
    ExecutionEnvironment env = ExecutionEnvironment
        .createRemoteEnvironment("flink-jobmanager", 8081, "/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 文件的路径。

原文链接: https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/cluster_execution.html