環境準備
本地Windows環境已安裝Flink 1.9.0版本。
一.準備代碼
1.1 maven準備
配置Flink的依賴
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>1.9.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_2.11</artifactId>
<version>1.9.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-core</artifactId>
<version>1.9.0</version>
</dependency>
1.2 Java代碼準備
還是以大家耳熟能詳的wordCount程序爲例
package com.zqs.study.flink;
import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.java.DataSet;
import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.operators.DataSource;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.util.Collector;
/*
@author 只是甲
* @date 2021-08-24
* @remark Flink的第一個wordCount程序
*/
public class wordCount {
public static void main(String[] args) throws Exception{
//創建執行環境
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
//從文件中讀取數據
String inputPath = "C:\\Users\\Administrator\\IdeaProjects\\FlinkStudy\\src\\main\\java\\com\\zqs\\study\\flink\\hello.txt";
DataSet<String> inputDataSet = env.readTextFile(inputPath);
// 對數據集進行處理,按空格分詞展開,轉換成(word, 1)二元組進行統計
DataSet<Tuple2<String, Integer>> resultSet = inputDataSet.flatMap(new MyFlatMapper())
.groupBy(0) // 按照第一個位置的word分組
.sum(1); // 將第二個位置上的數據求和;
resultSet.print();
//env.execute();
//env.execute("Word Count Example");
}
//自定義類,實現FlatMapFunction接口
public static class MyFlatMapper implements FlatMapFunction<String, Tuple2<String, Integer>> {
@Override
public void flatMap(String value, Collector<Tuple2<String, Integer>> out) throws Exception {
//按空格分詞
String[] words = value.split(" ");
//遍歷所有word,包成二元組輸出
for (String word : words) {
out.collect(new Tuple2<String, Integer>(word, 1));
}
}
}
}
二.打包
我這邊是直接package了,一般步驟是clean、complie、test、package
如下截圖是打包生成的文件路徑
三.通過Web UI執行jar文件
3.1 上傳文件
選擇"Submit New Job"後,選擇"Add New"
選中第二步打包生產的jar文件
如下提示上傳成功
但是要注意的是,我們只是把jar文件是上傳到服務器上,而並沒有開始執行
雙擊界面上的jar文件,可以看到有參數
Entry class 我們需要運行的class的完整路徑
Parallelism 並行度
Program Arguments Java程序中的自定義變量
Savepoint Path Savepoint保存的路徑
我們直接輸入class名稱,其餘的默認,點擊Submit
程序開始執行
等待一會兒,執行成功