【Flink学习】(二)Flink 本地环境搭建,运行第一个入门程序

一、环境搭建步骤

安装配置 JDK1.8,配置环境变量

安装 Maven 并配置本地仓库与镜像源

IDEA 配置 Maven 环境,创建 Maven 项目

xml 复制代码
<!-- Flink流式计算核心依赖 -->
<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-streaming-java</artifactId>
    <version>1.17.0</version>
</dependency>
<!-- Flink客户端依赖 -->
<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-clients</artifactId>
    <version>1.17.0</version>
</dependency>

1、获取流式执行环境

2、定义数据源 Source

3、调用转换算子处理数据

4、定义数据输出 Sink

5、触发任务执行

四、实战案例

java 复制代码
public class FlinkFirstDemo {
    public static void main(String[] args) throws Exception {
        // 1. 获取流执行环境
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        // 设置全局并行度
        env.setParallelism(1);

        // 2. 读取本地文本文件作为数据源
        DataStreamSource<String> fileStream = env.readTextFile("D:/test.txt");

        // 3. 数据拆分处理
        SingleOutputStreamOperator<String> wordStream = fileStream.flatMap((String line, Collector<String> collector) -> {
            String[] words = line.split(" ");
            for (String word : words) {
                collector.collect(word);
            }
        });

        // 分组求和统计次数
        wordStream.map(word -> new Tuple2<>(word, 1))
                .keyBy(tuple -> tuple.f0)
                .sum(1)
                .print();

        // 5. 执行任务
        env.execute("第一个Flink入门程序");
    }
}

五、本地运行测试

直接运行 main 方法,控制台自动输出单词统计结果,完成首个 Flink 程序开发。

相关推荐
大大大大晴天13 分钟前
Hudi技术内幕:Compaction原理与实践
大数据
zyplayer-doc30 分钟前
研发接口文档怎么长期维护:zyplayer-doc把API、Markdown和变更记录放进同一个知识库
大数据·数据库·人工智能·笔记·pdf·ocr
奥莱维1 小时前
经济型酒店智能客控轻量化方案
大数据·网络·人工智能
新芒2 小时前
【无标题】
大数据·人工智能
BOTTLE_平2 小时前
工具篇:用什么AI与选型避坑指南
大数据·人工智能
阿标在干嘛3 小时前
从HTTP到WebSocket:招投标信息实时推送系统的协议选型与架构设计
大数据·微服务·架构
苏州IT威翰德12 小时前
算力资产“续命”专家:苏州威翰德科技赋能NVIDIA高端AI芯片芯片级维修
大数据·人工智能
Miao1213112 小时前
某海外住宿平台如何在大规模场景下实现指标一致性:Minerva 指标平台实践
大数据·数据库·人工智能
SeaTunnel12 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
爱自由的代码工13 小时前
游戏沉默用户怎么激活?一套可执行的步骤、指标与复盘方法
大数据·游戏·游戏发行·游戏运营·游戏分发