flink的savepoint实验-java

前言和一些准备工作

首先需要明确的是,savepoint和checkpoint不是同一类,

所以在进行savepoint实验时,代码里不需要添加checkpoint enable选项等.

$FLINK_HOME/conf/flink-conf.yaml中添加

state.savepoints.dir: hdfs://Desktop:9000/flink-savepoints

实验代码采用[2]

------------------------------------------------------------------------------------------------------------------------

实验步骤

首先注意,这个实验在真实集群的standalone中进行,而不是local单节伪分布式集群.

步骤 步骤内容
启动Zookeeper,Hadoop,Flink(HA)三种集群(启动顺序不要错)

mvn package

cd target

扫描二维码关注公众号,回复: 11845388 查看本文章
flink run -c WordCount /home/appleyuchi/桌面/Flink_Code/flink_state/savepoint/target/bbb-1.0-SNAPSHOT.jar

得到:

Job has been submitted with JobID a5c47eb5cd62ef61f0e0ae66f17aab58

flink savepoint a5c47eb5cd62ef61f0e0ae66f17aab58

Savepoint completed. Path: hdfs://Desktop:9000/flink-savepoints/savepoint-a5c47e-bd57d19f884c
You can resume your program from this savepoint with the run command.

flink cancel a5c47eb5cd62ef61f0e0ae66f17aab58

Cancelling job a5c47eb5cd62ef61f0e0ae66f17aab58.
Cancelled job a5c47eb5cd62ef61f0e0ae66f17aab58.

WEB UI显示

flink run -s hdfs://Desktop:9000/flink-savepoints/savepoint-a5c47e-bd57d19f884c  -c WordCount -d /home/appleyuchi/桌面/Flink_Code/flink_state/savepoint/target/bbb-1.0-SNAPSHOT.jar

Job has been submitted with JobID 00b79db0e9123ebda8dcbb22a8d1e484

通过上述命令恢复以后,会在web ui中看到restore信息被更新

同时,之前Task Managers中的结果依然存在

我们继续在nc -lk 9999中输入heiheihei,能不能在上述同一个taskmanager中继续输出呢?答案是不能,

restore以后的程序在输出结果时,跑到另外一个taskmanager中去了,所以这点有些不完美

上述流程主要参考了[1]

完整代码

Reference

[1]Flink SavePoint

[2]intellij运行flink的wordcount实验-Java版本

猜你喜欢

转载自blog.csdn.net/appleyuchi/article/details/108865441