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