个人网站建设规划表,巨野有做网站的公司吗,建设一个营销网站的费用,百度一下网页首页容错机制
容错#xff1a;指出错后不影响数据的继续处理#xff0c;并且恢复到出错前的状态。 检查点#xff1a;用存档读档的方式#xff0c;将之前的某个时间点的所有状态保存下来#xff0c;故障恢复继续处理的结果应该和发送故障前完全一致#xff0c;这就是所谓的检…容错机制
容错指出错后不影响数据的继续处理并且恢复到出错前的状态。 检查点用存档读档的方式将之前的某个时间点的所有状态保存下来故障恢复继续处理的结果应该和发送故障前完全一致这就是所谓的检查点。
检查点的控制节点jobManager里面的检查点协调器向source节点的数据插入barrier标记。 检查点的保存 - 周期性触发保存 - 保存的时间点所有算子恰好处理完一个相同的输入数据时(使用Barrier机制)
检查点分界线Barrier
barrier标记表示这个标记之前的所有数据已经将状态更改存入当前检查点。后续的算子节点只要遇到它就开始对状态做持久化快照保存。在它之后对数据状态的改变只能保存到下一个检查点中。
检查点算法Chandy-Lamport算法的一种变体。 算法两个原则:
当上游任务向多个并行下游任务发送barrier时需要广播出去而当多个上游任务向同一个下游任务传递分界线时需要在下游任务执行“分界线对齐”操作也就是需要等到所有并行分区的barrier都到齐才可以开始状态的保存。
分界线对齐策略 精确一次等待分界线2先到的数据暂不进行处理处理多次的结果是一样的 至少一次对先到的数据进行处理检查点中记录了先到数据对状态的更新信息但是还未保存到状态后端如果此时发生故障进行故障恢复会导致从source重复发送刚刚已经处理过的先到数据。
分界线非对齐策略 非对齐策略只有精准一次缺点是需要将算子左边分界线右边的所有数据存储起来增加内存压力。 检查点配置 CheckpointConfig checkpointConfig env.getCheckpointConfig();//指定一致性语义
// checkpointConfig.setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);//检查点的存储//JobManagerCheckpointStorage:将检查点存储到JobManager的内存中//FileSystemCehckpointSotrage:将检查点存储到指定的文件系统中checkpointConfig.setCheckpointStorage(new FileSystemCheckpointStorage(hdfs://hadoop102:8020/flink/checkpoint));//状态后端
// env.setStateBackend(new EmbeddedRocksDBStateBackend());//检查点间隔checkpointConfig.setCheckpointInterval(2000L);//检查点超时时间checkpointConfig.setCheckpointTimeout(10000);//同时存在的检查点个数checkpointConfig.setMaxConcurrentCheckpoints(1);//两次检查点之间的间隔checkpointConfig.setMinPauseBetweenCheckpoints(1000L);//检查点清理checkpointConfig.setExternalizedCheckpointCleanup(CheckpointConfig.ExternalizedCheckpointCleanup.DELETE_ON_CANCELLATION);//检查点允许的失败次数checkpointConfig.setTolerableCheckpointFailureNumber(5);//开启非对齐模式只有在精准一次时才能开启且最大同时存在检查点只能为1checkpointConfig.enableUnalignedCheckpoints();//对齐超时自动开启非对齐checkpointConfig.setAlignedCheckpointTimeout(Duration.ofSeconds(5));//最终检查点//开启changlogenv.enableChangelogStateBackend(true);通用增量changelog配置hashmap本身不支持增量存储状态rockDB是支持的。changeLog可以不论hashmap还是rockDB都实现增量存储。开启该配置可以减少检查点的持续时间在创建检查点时只有changlog中的相关部分需要上传。 - 创建更多的文件 - 残留更多的文件 - 使用更多的IO来上传状态 - 占用更多的CPU资源来序列化状态变更
保存点savepoint
检查点与保存点的区别
检查点 检查点是频繁触发的设计目标就是轻量和尽快恢复检查点的数据在作业终止后是否删除可以配置数据存储格式可能是增量的 保存点 设计更侧重于可移植和操作灵活性即运维针对计划中的手动的运维保存点在作业终止和恢复后都不会删除保存点的数据格式以状态后端独立的标准的数据格式存储
保存点的用途
版本管理和归档存储更新Flink版本更新应用程序调整并行度
保存点的使用之切换状态后端
开启flink集群提交任务 bin/flink run -d -c -Dstate.backendhashmap 全类名 jar路径保存点的落盘 bin/flink -yid -type canonical yarn_id job_id hdfs://hadoop102/flink-savepoint切换状态后重启bin/flink run -d -Dstate.backendrocksdb -s hdfs保存点路径 全类名 jar包路径