Apache Flink 是一个分布式流批一体计算框架,入门时建议按照“概念 → 本地环境 → 写 Demo → 核心 API → 实际场景”的顺序来学。下面给你一套比较系统的入门路线。
Flink 核心特点
适用场景
mvn archetype:generate \
-DarchetypeGroupId=org.apache.flink \
-DarchetypeArtifactId=flink-quickstart-java \
-DarchetypeVersion=1.17.0
或用 Scala:
-DarchetypeArtifactId=flink-quickstart-scala
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
DataStream(流)DataSet(旧批,已逐步废弃)KeyedStreamenv.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
window(TumblingEventTimeWindows.of(Time.seconds(10)))
ValueStateListState❌ 一上来就学源码
❌ 忽略时间和窗口
❌ 不配置 Checkpoint
❌ 把 Flink 当 Spark 用
如果你愿意,我可以:
你更想从哪一步开始?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。