温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

flink框架怎样入门

发布时间:2026-09-27 06:48:46 来源:亿速云 阅读:100 作者:小樊 栏目:软件技术

Apache Flink 是一个分布式流批一体计算框架,入门时建议按照“概念 → 本地环境 → 写 Demo → 核心 API → 实际场景”的顺序来学。下面给你一套比较系统的入门路线。


一、先理解 Flink 是干什么的

Flink 核心特点

  • 以**流(Stream)**为基础模型(批是流的特例)
  • 低延迟、高吞吐、精确一次(Exactly-once)语义
  • 支持事件时间(Event Time)、窗口、状态、容错

适用场景

  • 实时数仓
  • 实时监控 / 告警
  • 实时风控
  • 日志处理
  • 流式 ETL

二、准备入门环境(最简单方式)

1. 基础环境

  • JDK 8 或 11(推荐 8)
  • Maven 或 Gradle
  • IDEA(社区版即可)

2. 快速创建项目(官方模板)

mvn archetype:generate \
  -DarchetypeGroupId=org.apache.flink \
  -DarchetypeArtifactId=flink-quickstart-java \
  -DarchetypeVersion=1.17.0

或用 Scala:

-DarchetypeArtifactId=flink-quickstart-scala

三、写一个最简单的 Flink 程序(WordCount)

1. 流处理版(最推荐入门)

StreamExecutionEnvironment env =
    StreamExecutionEnvironment.getExecutionEnvironment();

env.socketTextStream("localhost", 9999)
    .flatMap((String line, Collector<String> out) -> {
        for (String word : line.split(" ")) {
            out.collect(word);
        }
    })
    .map(word -> Tuple2.of(word, 1))
    .keyBy(value -> value.f0)
    .sum(1)
    .print();

env.execute("WordCount");

启动本地 socket:

nc -lk 9999

输入:

hello flink hello world

四、掌握 Flink 的核心概念(非常重要)

1. 四大基础组件

  • Source:数据来源(Kafka、Socket、文件)
  • Transformation:数据计算
  • Sink:数据落地(MySQL、Kafka、HDFS)
  • Environment:执行环境

2. 核心抽象

  • DataStream(流)
  • DataSet(旧批,已逐步废弃)
  • KeyedStream

3. 时间语义(重点)

  • Event Time(事件时间)✅ 最常用
  • Ingestion Time
  • Processing Time
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);

4. 窗口(Window)

  • 滚动窗口(Tumbling)
  • 滑动窗口(Sliding)
  • 会话窗口(Session)
window(TumblingEventTimeWindows.of(Time.seconds(10)))

五、学习重点 API(由浅入深)

阶段 1:基础 API

  • map / filter / flatMap
  • keyBy / reduce / sum
  • window

阶段 2:状态和容错

  • ValueState
  • ListState
  • Checkpoint
  • StateBackend

阶段 3:高级特性

  • Watermark
  • ProcessFunction
  • CEP(复杂事件处理)
  • Table API / SQL

六、推荐学习顺序(实战导向)

  1. 写 3 个 Demo
    • WordCount
    • 实时统计
    • Kafka → Flink → MySQL
  2. 理解 Checkpoint 和 State
  3. 学 Table API / SQL(更像写 SQL)
  4. 接 Kafka(90% 公司用)

七、推荐学习资源

官方文档(最权威)

  • https://flink.apache.org/
  • https://nightlies.apache.org/flink/flink-docs-stable/

中文资料

  • 《Flink 基础教程》
  • 尚硅谷 / 黑马 Flink 视频
  • Flink 中文社区

八、新手常见误区

❌ 一上来就学源码
❌ 忽略时间和窗口
❌ 不配置 Checkpoint
❌ 把 Flink 当 Spark 用


如果你愿意,我可以:

  • 给你一份 7 天 Flink 入门计划
  • 用 Kafka + Flink + MySQL 写一个完整示例
  • 对比 Flink vs Spark Streaming

你更想从哪一步开始?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手