前言和一些准备工作
首先需要明确的是,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 查看本文章
得到: Job has been submitted with JobID a5c47eb5cd62ef61f0e0ae66f17aab58 |
③ | flink savepoint a5c47eb5cd62ef61f0e0ae66f17aab58 Savepoint completed. Path: hdfs://Desktop:9000/flink-savepoints/savepoint-a5c47e-bd57d19f884c |
④ | flink cancel a5c47eb5cd62ef61f0e0ae66f17aab58 Cancelling 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]