

# 群集执行

> 译者：[flink.sojb.cn](https://flink.sojb.cn/)


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

## 命令行界面

命令行界面允许您将打包程序（JAR）提交到群集（或单机设置）。

有关详细信息，请参阅[命令行界面](https://flink.sojb.cn/ops/cli.html)文档。

## 远程环境

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

### Maven依赖

如果您正在将程序开发为Maven项目，则必须`flink-clients`使用此依赖项添加 模块：



```
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-clients_2.11</artifactId>
  <version>1.7-SNAPSHOT</version>
</dependency>
```



### 例

以下说明使用`RemoteEnvironment`：



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

