Stream 分布式数据流的轻量级异步快照

  • 时间:
  • 浏览:0
  • 来源:5分6合APP下载_5分6合APP官方

伪代码如下:

Apache Flink 围绕通用运行时引擎进行架构,需用统一除理批除理和流式作业。Flink 中的作业被编译成任务的有向图。数据元素从内部人员数据源获取,并以流水线最好的最好的办法通过任务图。基于接收到的输入,任务不断操作其内部人员请况,并产生新的输出。

(2) 当一三个小 多非 source 任务接收到其中一三个小 多输入的 barrier 时,它会阻塞该输入,直到它接收到来自所有输入的 barrier(第9行 图2(b))。

下面的代码示例中显示了如何在 Apache Flink 中实现简单的 Word Count 守护进程。在此守护进程中,从文本文件中读取单词,并将每个单词的当前计数打印到标准输出上。这是一三个小 多有请况的流除理守护进程,什么都数据源需用知道它们在文件中的当前偏移量,日后 需用计数器来将每个单词的当前计数保持在内部人员请况中。

分布式有请况流除理支持在云中部署和执行大规模连续计算,主要针对低延迟和高吞吐量。你你你是什么模式的一三个小 多最根本的挑战而是在机会的失败请况下提供除理保证。现有最好的最好的办法依赖于可用于故障恢复的周期性全局请况快照。哪些地方地方最好的最好的办法三个小 多多主要缺点。首先,大家大家大家 经常拖延影响数据摄取的整体计算过程。其次,持久化存储所有传输中的记录以及算子请况,这会原因分析分析比所需的快照要更大。

在下图中,大家大家大家 使用3秒快照间隔的 ABS 拓扑与基准(无容错)进行比较可扩展性。很明显,基准作业和 ABS 都实现了线性可扩展性。

原文来源:Stream 分布式数据流的轻量级异步快照

在居于有向循环的执行图中的请况下,里面的 ABS 算法不想终止而会原因分析分析死锁,机会一三个小 多循环中的任务将无限期地等待接收来自其所有输入的 barrier。此外,在循环中传输的记录不想中有 在快照中,日后 违反了可行性。日后 ,为了可行性需用在快照中中有 在循环中生成的所有记录,并在恢复时将哪些地方地方记录重新传输。大家大家大家 除理循环图的最好的最好的办法继承了基本算法,而不想像里面算法中看后的那样引起任何额外的 channels 阻塞。首先,大家大家大家 通过静态分析来识别执行图中循环中的 back-edge L。根据控制流图理论,有向图中的 back-edge 是居于宽度优先搜索中机会访问过的顶点的边。执行图 G(T,E \ L) 是一三个小 多中有 拓扑中所有任务的 DAG。从该 DAG 的宽度来看,该算法与日后一样运行,日后 ,大家大家大家 需用在快照期间对下游 back-edge 接收的记录进行备份。barrier 将循环中的所有记录都推送到下游日志中,以便将它们中有 在一致的快照中。

需用从内部人员来源(类似于消息队列,套接字流,自定义生成器)或通过调用一些 DataStream 上的操作来创建 DataStreamsDataStreams 支持多种算子,如 mapfilter 和 reduce 等形式的高阶函数,哪些地方地方函数在每个记录上逐步应用并生成新的 DataStream。每个算子需用通过将并行实例放置在相应流的不同分区上运行来并行化,从而允许分布式执行流转换。

评估的目标是将 ABS 的运行时间开销与 Naiad 中采用的全局同步快照算法进行比较,并测试算法在大数量节点上的可伸缩性。用于评估的执行拓扑内部人员(如下图)由6个不同的算子组成,其并行度等于集群节点的个数,转换为 6 * 集群大小 个任务顶点。执行中有 三个小全部的网络 shuffle,以突显 ABS 中通道阻塞的机会影响。source 产生总共10亿条记录,哪些地方地方记录在 source 实例中均匀分布。拓扑中算子的请况是按键的聚合以及 source 的偏移量。在 Amazon EC2 集群上使用多达40个 m3.medium 实例在运行实验。

这里所说的新型的快照算法,既适用于有向无环图,也适用于有向有环图。本文重点关注在有向无环图中的应用。

日后 ,提出了有有一种新的分布式快照的算法,即在 Apache Flink 中的异步屏障快照(Asynchronous Barrier Snapshotting (ABS))。这是有有一种适用于现代数据流执行引擎的轻量级算法,可最大限度地减少空间需求,让快照居于时对系统的影响降到最低。你你你是什么算法不想停止流除理,它只会引入很少的运行时间开销,日后 对于整个无环图的拓扑内部人员,只对有请况的算子进行快照,日后 快照的大小只会占用很小的空间。该算法不想对执行产生重大影响,保证线性可伸缩性,日后 需用在频繁的快照下正常运行。

在这提供关于故障恢复操作的简要说明。有几种故障恢复方案可用于一致性快照。最简单的是,整个执行图需用从上一三个小 多全局快照重新启动,每个任务 t ,如下所示:

(4) 日后 ,该任务解除输入通道的阻塞来继续后续的计算(第15行,图2(d))。全部的全局快照 G * =(T *,E *) 仅中有 所有算子请况 T *,其中 E * = 0

(1) 中央协调器周期性的给所有 source 注入 stage barrier(黑色实线)。当 source 接收到 barrier 时,会为当前的请况生成一三个小 多快照,日后 将 barrier 广播到它的所有输出中(图(a))。

在下图中,大家大家大家 描述了有有一种算法对基线的运行时影响(无容错)。当快照时间间隔较小时,同步快照的性能影响尤其明显。这是机会系统花费更多时间来获取全局快照而都不 除理数据。ABS 对运行时的影响要低得多,机会它需用持续运行而不想阻碍整体执行,一并保持相当稳定的吞吐率。当快照时间间隔变大时,同步算法的影响逐渐变小。

对于可行性,足以证明在全局快照中的算子请况仅反映了直到最后阶段除理的记录的历史过程。这需用通过 channels 的 FIFO 顺序内部人员以及 barrier 全部接收日后阻塞 input channels 保证 stage 的 post-shot 记录不想在快照生成日后除理。

仅通过重新调度上游任务依赖(其中有 到失败任务的 output channels)以及它们人个直到 source 的上游任务,重新恢复调度部分图也是机会的。下图显示了一三个小 多恢复示例。为了提供 exactly-once 的语义,应该在所有下游节点中忽略重复记录以除理重新计算。为了达到你你你是什么目的,大家大家大家 用来自source 的序列号标记记录,日后 ,每个下游节点需用丢弃序号小于大家大家大家 机会除理的记录。

如前所述,快照算法应该保证最终性和可行性。最终性由通道和非循环执行图属性保证。channels 的可靠性确保而是任务存活,发送的每个 barrier 最终都不 被接收的。此外,机会始终居于来自 source 的一根绳子 路径,日后  DAG 拓扑中的每个任务最终都将从其所有 input channels 接收 barrier 并生成快照。

算法执行过程如下:

大家大家大家 确保每个快照 G * 都保留一些属性,类似于最终性 Termination 和可行性 Feasibility,以便在故障恢复后保证结果的正确性。最终性保证,机会所有守护进程都居于活跃请况,没法快照算法最终会在启动后的有限时间内完成。可行性表达了快照的意义,即在快照过程中关于计算的信息不想丢失。

(3) 当收到来自所有输入的 barrier 时,该任务会生成当前请况的一三个小 多快照并将其 barrier 广播到其输出(第12-13行 图2(c))。

原文: http://pdfs.semanticscholar.org/541e/cf8c5b9db97eb5fcd1ffdf863d948b8954cc.pdf

当用户执行一三个小 多应用守护进程时,所有的 DataStream 算子都将编译成一三个小 多执行图,原理上为一三个小 多有向图 G =(T,E),其中顶点 T 表示任务,边 E 表示三个小 多任务之间的 data channels。上图就描绘了一三个小 多 Word Count 例子的执行图。如图所示,算子的每个实例都封装在去相应的任务上。任务需用进一步细分为没法 input channels 的 Source 以及没法 output channels 的 Sink。此外,M 表示任务在并行执行期间传输的所有记录的集合。每个任务 t ∈ T 封装了一三个小 多算子实例的独立运行,其由以下内容组成:

为了提供一致性结果,分布式除理系统需用对失败任务进行恢复。提供你你你是什么弹性的有有一种最好的最好的办法是定期捕获执行图的快照,日后 需用用它来从故障中恢复。快照是执行图的全局请况,捕获所有必要信息以从该特定执行请况重新结速了了英语 计算。

当一三个小 多执行过程被分成多个阶段 (stage),在不保留 channels 请况的请况下执行快照是可行的。stage 将注入的数据流和所有相关的计算划分为一系列机会的执行过程,其中所有先前的输入和心成的输出机会全部除理。在一三个小 多 Stage 结速了了英语 时的算子请况集合反映了整个执行历史,日后 它需用用于快照。大家大家大家 算法肩上的核心思想是在保持连续数据摄入的一并使用分段快照创建一致性快照(create identical snapshots with staged snapshotting)。

为了区分算子请况和数据,大家大家大家 引入了一三个小 多显式的 OperatorState 接口,该接口中有 更新请况以及对请况进行检查点的最好的最好的办法。大家大家大家 为 Apache Flink 支持的有请况运行时算子(类似于基于偏移量的源或聚合)提供了 OperatorState 实现。

大家大家大家 的目的是除理在分布式数据流系统上执行定期全局快照的疑问图片。大家大家大家 引入了 ABS,这是有有一种新的快照技术,可实现良好的吞吐量。ABS 是第有有一种考虑非循环执行拓扑的最小机会请况的算法。此外,大家大家大家 通过仅存储需用在恢复时重新除理的记录来扩展 ABS 以在循环执行图上使用。大家大家大家 在 Apache Flink 上实现了 ABS,并对比同步快照算法评估了大家大家大家 算法的性能。在早期阶段,ABS 显示出良好的结果,对整体执行吞吐量影响较小并具有线性可扩展性。

在大家大家大家 的最好的最好的办法中,在持续的数据流执行中模拟 stage 是通过向数据流中周期性注入特殊屏障 barrier 标记完成的,哪些地方地方标记在整个执行图中经常传输到 sink。全局快照是随着每个任务接收表示执行 stage 的 barrier 而逐步构建的。 大家大家大家 进一步为大家大家大家 的算法做出以下假设:

大家大家大家 测量了在不同快照间隔下 ABS 和同步快照有有一种快照方案运行的运行时间开销。大家大家大家 实现了在 Apache Flink Naiad 上使用的同步快照算法,以便在相同终端上执行进行比较。该实验在10节点集群上运行。为了评估大家大家大家 算法的可伸缩性,大家大家大家 除理固定数量的输入记录(10亿),一并将大家大家大家 拓扑的并行度从三个小增加到40个节点。

大家大家大家 定义了一三个小 多执行图 G =(T,E) 的全局快照 G * =(T *,E *),其中 T * 和 E * 分别表示所有任务和边的请况集合。更全部地说,T * 由所有算子请况 St * ∈ T * 组成, ∀t ∈ T, E * 是所有 channels 请况 e * ∈ E * 的集合,其中 e * 由在 e 上传输的记录组成。

大家大家大家 向 Apache Flink 提供了 ABS 算法的实现,以便为流式运行提供 exactly-once 除理语义。在大家大家大家 当前的实现中,阻塞通道将所有传入的记录存储在磁盘上,而都不 将它们保居于内存中以增加可扩展性。其实 此技术可确保鲁棒性,日后 增加 ABS 算法的运行时影响。

猜你喜欢

为什么我家的的wifi信号满格,手机能显示信号,但就和没连一样 不能用,为什么

很高兴为你服务至于你的间题,很简单,只有三个白多多将会性愿因分析,展开完整版展开完整版使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。怪怪的推荐扫描二维

2020-02-20

家里网络能看电视,手机却经常连不上网,是路由器的原因吗

采纳数:40527获赞数:106725展开完正你对这些回答的评价是?收起更多回答(1)可选中俩个 或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问提。展开完

2020-02-20

游客esqfqydq476om的主页

文章:0丨粉丝:7339丨话题:0文章:1丨粉丝:38663丨话题:0数据库,NoSQLKubernetes、Docker、调度、里边件文章:104丨粉丝:8129丨话题:1阿

2020-02-20

复旦博士给机器人当语言老师,教出了英语四级水平的“阿里小蜜“

“在阿里,服务体量广,业务场景多,人工智能有更多的发挥空间,我的工作也更有价值。”Peter说。谁也想没办法,2017年3月,这人 复旦博士回国做的第一件事,是加入阿里巴巴集

2020-02-20

官方 | 从机器翻译到阅读理解,一文盘点PaddlePaddle九大NLP模型

近日,百度PaddlePaddle开源了语义表示模型ERNIE,在多个中文NLP任务上表现超越了谷歌的BERT,展示了百度在NLP技术的领先能力,同时也表明PaddlePadd

2020-02-20