天天看點

[Flink]Flink1.3 Batch指南二 叢集運作

Flink程式可以分布在許多機器的群集上。有兩種方式可以将程式發送到叢集上運作: (1) 指令行接口 (2) 遠端環境

1. 指令行接口 http://gitlab.corp.qunar.com/jifeng.si/learningnotes/blob/master/IT/%E5%A4%A7%E6%95%B0%E6%8D%AE/Flink/%5BFlink%5DFlink1.3%20Batch%E6%8C%87%E5%8D%97%E4%BA%8C%20%E9%9B%86%E7%BE%A4%E8%BF%90%E8%A1%8C.md#1

指令行接口允許你将打包程式(JAR)送出到叢集(或單機配置)。

詳細請參閱

[Flink]Flink1.3 指南四 指令行接口

2. 遠端環境 http://gitlab.corp.qunar.com/jifeng.si/learningnotes/blob/master/IT/%E5%A4%A7%E6%95%B0%E6%8D%AE/Flink/%5BFlink%5DFlink1.3%20Batch%E6%8C%87%E5%8D%97%E4%BA%8C%20%E9%9B%86%E7%BE%A4%E8%BF%90%E8%A1%8C.md#2

遠端環境允許你直接在叢集上運作Flink Java程式。遠端環境指的是你要在上面運作程式的叢集。

2.1 Maven依賴 http://gitlab.corp.qunar.com/jifeng.si/learningnotes/blob/master/IT/%E5%A4%A7%E6%95%B0%E6%8D%AE/Flink/%5BFlink%5DFlink1.3%20Batch%E6%8C%87%E5%8D%97%E4%BA%8C%20%E9%9B%86%E7%BE%A4%E8%BF%90%E8%A1%8C.md#2-1-maven

使用下面依賴關系添加

flink-clients

子產品:

<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-clients_2.10</artifactId>
  <version>1.3.2</version>
</dependency>
           

2.2 Example http://gitlab.corp.qunar.com/jifeng.si/learningnotes/blob/master/IT/%E5%A4%A7%E6%95%B0%E6%8D%AE/Flink/%5BFlink%5DFlink1.3%20Batch%E6%8C%87%E5%8D%97%E4%BA%8C%20%E9%9B%86%E7%BE%A4%E8%BF%90%E8%A1%8C.md#2-2-example

下面說明了如何使用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檔案。
           
Flink版本:1.3
           

原文:

https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/cluster_execution.html