For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
故障恢复与转移分别对应有状态和无状态两种应用场景,有状态的应用场景常见于主从系统架构的主节点元信息存储,比如HDFS NameNode,以及计算引擎的中间运行状态信息,如Flink状态数据。
故障恢复与转移都是实现容错机制的方式。故障恢复实现方式通常有数据库系统的Redo log,No SQL系统中的 write ahead log,以及Flink等系统中使用Checkpoint机制,Flink 任务状态可以理解为实时任务计算过程中,中间产生的数据结果,同时这些计算结果会在后续实时任务处理时,能够继续进行使用。
实时任务的状态可以是一个聚合结果值,比如 WordCount 统计的每个单词的数量,也可以是消息流中的明细数据。
Flink 任务状态整体可以划分两种:Operator 状态和 KeyedState。常见的 Operator 状态,比如 Kafka Topic 每个分区的偏移量。KeyedState 是基于 KeyedStream 来使用的,所以在使用前,你需要对你的流通过 keyby 来进行分区,常见的状态比如有 MapState、ListState、ValueState 等。
下面是一个实时计算奇数和偶数的任务的示例,假如输入的流来自于 Kafka ,那么 Kafka Topic 分区的偏移量是状态,所有奇数的和、所有偶数的和也都是状态。当应用异常重启,就可以从状态数据中恢复,避免重复计算。
无状态的应用场景常见于主从架构中的工作节点,比如MapReduce框架中的失败任务,可以在其它节点重新运行,而不需要考虑上次的执行情况,以及分布式DAG任务调度系统的异常重跑任务。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请添加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。