国产精品视频第一页久久-国产精品视频二区三区-国产精品视频久久-国产精品视频久久鲁-国产精品视频视频久久-国产精品视频一二三-国产精品是53区在-国产精品熟女九九九-国产精品熟女久久久久久-国产精品熟女一区

Apache Flink零基礎入門(二) 開發環境搭建、應用配置部署與運行

首頁 > 產品大全 > Apache Flink零基礎入門(二) 開發環境搭建、應用配置部署與運行

Apache Flink零基礎入門(二) 開發環境搭建、應用配置部署與運行

Apache Flink零基礎入門(二) 開發環境搭建、應用配置部署與運行

在上一篇中,我們介紹了Apache Flink的基本概念。本篇將帶領你從零開始,搭建Flink開發環境,并完成一個簡單應用的配置、部署與運行全流程。

一、開發環境搭建

一個完整的Flink開發環境需要以下幾部分:

1. Java開發環境:Flink核心基于Java(也支持Scala)。請確保已安裝JDK 8或11(推薦)。
`bash
# 檢查Java版本

java -version
`

2. 構建工具:Maven配置
對于Java項目,我們使用Maven管理依賴。在~/.m2/settings.xml中,可以配置鏡像倉庫以加速依賴下載(國內用戶建議配置)。
`xml



aliyunmaven
central
阿里云公共倉庫
https://maven.aliyun.com/repository/central



`

  1. 集成開發環境(IDE):推薦使用IntelliJ IDEA(社區版即可)或Eclipse,并安裝好Maven插件。

4. Flink本地安裝(可選,用于本地運行和測試)
Flink官網下載對應版本的二進制包,解壓即可。
`bash
# 解壓后,可以啟動一個本地單節點集群

./bin/start-cluster.sh
# 訪問Web UI: http://localhost:8081

`

二、創建第一個Flink應用

我們將創建一個Maven項目,實現一個簡單的單詞計數(WordCount)應用。

1. 使用Maven Archetype創建項目
`bash
mvn archetype:generate \

-DarchetypeGroupId=org.apache.flink \

-DarchetypeArtifactId=flink-quickstart-java \

-DarchetypeVersion=1.17.0 \

-DgroupId=com.learn.flink \

-DartifactId=flink-quickstart \

-Dversion=1.0 \

-Dpackage=com.learn.flink \

-DinteractiveMode=false
`

2. 項目核心依賴
查看生成的pom.xml,核心依賴是:
`xml

org.apache.flink
flink-java
${flink.version}


org.apache.flink
flink-streaming-java
${flink.version}



org.apache.flink
flink-clients
${flink.version}

`

3. 編寫WordCount示例代碼
src/main/java下創建StreamingWordCount.java
`java
import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.util.Collector;

public class StreamingWordCount {
public static void main(String[] args) throws Exception {
// 1. 創建流式執行環境
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

// 2. 定義數據源(這里從Socket讀取,用于測試)
DataStreamSource source = env.socketTextStream("localhost", 9999);

// 3. 轉換操作:切分、計數
SingleOutputStreamOperator> result = source
.flatMap(new Tokenizer())
.keyBy(value -> value.f0) // 按單詞分組
.sum(1); // 對第二個字段(計數)求和

// 4. 輸出結果(打印到控制臺)
result.print();

// 5. 觸發程序執行(流式作業必須調用)
env.execute("Streaming WordCount");
}

// 自定義函數,將一行文本拆分成(單詞,1)的二元組
public static class Tokenizer implements FlatMapFunction> {
@Override
public void flatMap(String value, Collector> out) {
String[] words = value.toLowerCase().split("\\W+");
for (String word : words) {
if (!word.isEmpty()) {
out.collect(new Tuple2<>(word, 1));
}
}
}
}
}
`

三、應用的配置、部署與運行

模式一:本地IDE運行(開發調試)

1. 確保有一個Socket源。可以使用nc命令在終端開啟一個服務:
`bash
# Linux/Mac

nc -lk 9999
# Windows可以使用其他工具,如netcat

`
  1. 在IDE中直接運行StreamingWordCount的main方法。
  2. nc終端輸入幾行英文句子,即可在IDE控制臺看到實時單詞計數輸出。

模式二:本地Standalone集群運行

1. 打包應用
`bash
cd flink-quickstart
mvn clean package -DskipTests
`
target目錄下生成JAR包(如flink-quickstart-1.0.jar)。

2. 提交到本地運行的Flink集群
`bash
# 首先確保已啟動本地集群(./bin/start-cluster.sh)

./bin/flink run \

-c com.learn.flink.StreamingWordCount \
/path/to/your/flink-quickstart-1.0.jar
`

  1. 通過Flink Web UI(http://localhost:8081)監控運行中的作業。
  2. 同樣,通過向localhost:9999發送文本數據來觸發計算。

模式三:提交到生產集群(如YARN/K8s)

以YARN Session模式為例:

1. 啟動YARN Session
`bash
./bin/yarn-session.sh -tm 2048 -s 2
`

2. 提交作業
`bash
./bin/flink run \

-yid \ # 關聯到已存在的YARN session

-c com.learn.flink.StreamingWordCount \
/path/to/your/flink-quickstart-1.0.jar
`

四、應用配置詳解

Flink應用的配置主要通過ExecutionEnvironmentStreamExecutionEnvironment進行。

`java StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

// 1. 設置并行度(全局)
env.setParallelism(4);

// 2. 開啟Checkpoint(用于容錯)
env.enableCheckpointing(10000); // 每10秒一次

// 3. 從配置文件讀取配置(如flink-conf.yaml)
// 本地運行時,可加載自定義配置文件
Configuration config = new Configuration();
config.setString("taskmanager.memory.process.size", "2048m");
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(config);
`

還可以通過pom.xml中的<properties><profiles>來管理不同環境(開發/測試/生產)的構建配置。

###

至此,你已經完成了從環境搭建、項目創建、代碼編寫到應用部署運行的完整流程。關鍵步驟是:

  1. 使用Maven管理項目和Flink依賴。
  2. 理解DataStream API的編程模式(創建環境、定義源、轉換、輸出、觸發執行)。
  3. 掌握本地運行、本地集群提交和遠程集群提交三種部署方式。

你可以嘗試更復雜的數據源(如Kafka)、狀態操作、窗口計算等,并深入探索Flink在實時數據處理領域的強大能力。

如若轉載,請注明出處:http://www.cactus.org.cn/product/1.html

更新時間:2026-06-07 14:17:15

主站蜘蛛池模板: 一道本在线免费 | 国产无码久久片 | 日本在线高清观看 | 欧美日韩在线网站 | 国产视频福利导航 | 人人撸在线播放 | 欧美免费在线视频 | 男人操逼天堂视频 | 91色欧美| 国产自偷自拍一区 | 三级网站观看 | 日本高清中文字幕 | 国产噜噜在线视频 | 国产啪亚洲国产 | 豆花福利视频 | 欧美中国乱伦 | 三级网站免费观看 | 欧美日韩片 | 岛国不卡 | 伦理片年轻的母亲 | 国产AV| 日韩美女视频网站 | 日韩伦理在线影院 | 欧美日韩日逼 | 黄片毛片三级片 | gay片在线观看 | 成人豆奶视频 | 成人三级片网站 | 国产一区二区骚逼 | 国产a级黄色毛片 | 亚洲视频中文在线 | 成年人电影网 | 波多野百合 | 波多野给结衣乱码 | 国产无遮挡又黄 | 国产视频影院 | 日本理论片在线 | 操碰操碰在线 | 国产午夜福利bb | 97精品在线| 性爱四房|