【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 程序开发。

相关推荐
ebok.10 小时前
国产大模型落地业务系统的优选载体:京微智枢信创 AI 业务支撑平台
大数据·人工智能·低代码·ai
民乐团扒谱机12 小时前
【微实验】组合优化matlab实战(马科维茨投资模型):在收益与风险之间,寻找最优的人生配比
大数据·人工智能·算法·机器学习·数学建模·matlab·组合优化
星野川崎20612 小时前
电商多店运维:云机长期挂机频繁掉线、账号无故风控原因剖析与解决方案
大数据·运维·云计算·电商
小柯南敲键盘12 小时前
电商图片翻译工具推荐,批量处理主图视频字幕,免费试用
大数据·人工智能·python·音视频
观远数据13 小时前
零售连锁BI选型清单:什么样的场景适合ChatBI,什么样的场景不适合
大数据·人工智能·零售
大大大大晴天13 小时前
实时数仓怎么建:基于 StarRocks 的分层设计与实践
大数据
roman_日积跬步-终至千里14 小时前
【计算资源节省与稳定性治理】自助查询系统请求幂等性设计
大数据
小玮看世界15 小时前
当“安全“变成“教训“:《拟人化暂行办法》时代,AI护栏的过度拒答之困与破局
大数据·人工智能
FserSuN16 小时前
回顾Spark的概念与应用
大数据·分布式·spark
一知半解仙17 小时前
大国博弈与机器人纪元:我们正站在怎样的历史拐点?
大数据·人工智能·机器人