群集执行

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

命令行界面

命令行界面允许您将打包程序(JAR)提交到集群(或单机器设置)。
有关详细信息,请参阅[命令行界面](//ci.apache.org/projects/flink/flink-docs-release-1.7/ops/cli.html)文档。

远程环境

远程环境允许您直接在集群上执行FLink Java程序。远程环境指向要在其上执行程序的集群。

Maven依赖

如果您将程序开发为maven项目,则必须使用此依赖项添加“flink clients”模块:

  1. <dependency>
  2. <groupId>org.apache.flink</groupId>
  3. <artifactId>flink-clients_2.11</artifactId>
  4. <version>1.7.1</version>
  5. </dependency>

例子

下面说明了“远程环境”的用法:

  1. public static void main(String[] args) throws Exception {
  2. ExecutionEnvironment env = ExecutionEnvironment
  3. .createRemoteEnvironment("flink-master", 8081, "/home/user/udfs.jar");
  4. DataSet<String> data = env.readTextFile("hdfs://path/to/file");
  5. data
  6. .filter(new FilterFunction<String>() {
  7. public boolean filter(String value) {
  8. return value.startsWith("http://");
  9. }
  10. })
  11. .writeAsText("hdfs://path/to/result");
  12. env.execute();
  13. }

请注意,该程序包含自定义用户代码,因此需要附加代码类的JAR文件。远程环境的构造函数获取JAR文件的路径。