Flink基礎系列7-通過Web UI執行jar文件 環境準備 一.準備代碼 二.打包 三.通過Web UI執行jar文件

環境準備

本地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


程序開始執行


等待一會兒,執行成功


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章