集群 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