Flink容错机制-Checkpoint

Checkpoint

Flink具体如何保证exactly-once呢? 它使用一种被称为"检查点"(checkpoint)的特性,在出现故障时将系统重置回正确状态

Spark不用CK:1.HDFS生成大量小文件(一个分区一个文件)

                              2.会从停掉的时刻到恢复时刻从头到尾跑一边,产生大量任务


Flink的检查点制作过程( barrier不对齐)

1.Checkpoint Coordinator (在JobManager中)向所有 source 节点 trigger Checkpoint(触发). 然后Source Task会在数据流中安插CheckPoint barrier

2.source 节点向下游广播 barrier,这个 barrier 就是实现 Chandy-Lamport 分布式快照算法的核心,下游的 task 只有收到所有 input 的 barrier 才会执行相应的Checkpoint 

3.当 task 完成 state 备份后,会将备份数据的地址(state handle)通知给JobManager 的Checkpoint coordinator。

4.下游的 sink 节点收集齐上游所有的 input 的 barrier 之后,会执行本地快照,(保存在RocksDB数据库或者HDFS)

5.sink 节点在完成自己的 Checkpoint 之后,会将 state handle 返回通知 Coordinator。

6.当 Checkpoint coordinator 收集齐所有 task 的 state handle,就认为这一次的 Checkpoint 全局完成了,向持久化存储中再备份一个 Checkpoint meta 文件。

Savepoint原理

Flink 还提供了可以自定义的镜像保存功能,就是保存点(savepoints)

Flink不会自动创建保存点,因此用户(或外部调度程序)必须明确地触发创建操作

保存点是一个强大的功能。除了故障恢复外,保存点可以用于:有计划的手动备份,更新应用程序,版本迁移,暂停和重启应用,等等


在代码中测试Checkpoint与Savepoint

public class Flink_savepoint {

public static void main(String[] args)throws Exception {

//TODO 1.获取执行环境

        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

        env.setParallelism(1);

        //TODO 2.设置用户权限

        System.setProperty("HADOOP_USER_NAME", "zy");

        //TODO 3.设置状态后端

        env.setStateBackend(new FsStateBackend("hdfs://hadoop102:8020/flink/ck"));

        //TODO 4.开启ck

        //1.设置5s一次checkpoint

        env.enableCheckpointing(5000);

        //2.设置模式为精准一次性,barrier对齐

        env.getCheckpointConfig().setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);

        //TODO 5.读取数据并转换为数组

        DataStreamSource streamSource = env.socketTextStream();

        //数据转换为元祖

        SingleOutputStreamOperator flatMap = streamSource.flatMap(new FlatMapFunction() {

@Override

            public void flatMap(String value, Collector out)throws Exception {

String[] s = value.split(" ");

                for (String s1 : s) {

out.collect(s1);

                }

}

});

        SingleOutputStreamOperator> map = flatMap.map(new MapFunction>() {

@Override

            public Tuple2map(String value)throws Exception {

return Tuple2.of(value, 1);

            }

});

        //TODO 6.按照单词分组

        KeyedStream, Tuple> keyedStream = map.keyBy(0);

        //TODO 7.累加操作

        SingleOutputStreamOperator> result = keyedStream.sum(1);

        result.print();

        env.execute();

    }

}

打包上传代码到集群

启动hadooop

由于Flink-Standalone配置了高可用,启动zk

启动flink bin/start-cluster.sh

提交任务

bin/flink run -d -m hadoop102:8081 -c 全类名 jar包地址及名称

传入数据aa bb cc dd  查看任务

HDFS上面查看CK


查看jobID 手动创建保存点


bin/flink savepoint -m hadoop102:8081 JobId hdfs://hadoop:8020/flink/save



关闭任务并从保存点恢复任务

bin/flink run -s hdfs://hadoop:8020/flink/save/... -m hadoop102:8081 -c 全类名

再次输入数据 aa bb cc dd查看结果


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,607评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,239评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,960评论 0 355
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,750评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,764评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,604评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,347评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,253评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,702评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,893评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,015评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,734评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,352评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,934评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,052评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,216评论 3 371
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,969评论 2 355

推荐阅读更多精彩内容