欢迎访问一起赢论文辅导网
本站动态
联系我们
 
 
 
 
 
 
 
 
 
 
 
QQ:3949358033

工作时间:9:00-24:00
SCI期刊论文
当前位置:首页 > SCI期刊论文
面向Flink迭代计算的高效容错处理技术_郭文鹏
来源:一起赢论文网     日期:2021-02-01     浏览数:1954     【 字体:

 第4 卷第1 2 02 0 年1 1 月计算机学报CH I N ESEJ O UR N A LO FC OMP UT ERSVol . 4 3N o . 1 1No v. 2 02 0面向Fl i nk 迭代计算的高效容错处理技术郭文鹏n赵宇海"王国仁2 )韦刘国n东北大学计算机科学与工程学院沈阳1 1 0 1 69 )2 )( 北京理工大学计算机学院北京1 0 0 0 8 1 )摘要迭代计算是相同逻辑的重复执行, 在各种机器学习和数据挖掘方法中被广泛使用. 在大数据的处理与分析领域中, 分布式迭代计算更是当前的热点研究问题之一. 容错机制是分布式系统高可用性的必要保证. 现有分布式系统的容错机制虽然在髙可用性上表现良好, 但忽略了面向迭代计算的容错效率问题. 本文针对批流混合大数据计算系统A pac h e F l i nk 的迭代容错效率问题, 进行了系统的研究. 执行流处理任务时, F l i n k 采用“ 分布式快照”的检查点机制来完成容错. 对于海量数据的迭代分析, 检查点增加了不必要的延迟. 执行批处理任务时, F l in k 采用从头执行任务的方式来实现容错, 该方式虽然实现简单, 但带来了很大的时间开销. 针对以上问题, 本文首先提出了一种基于补偿函数的乐观迭代容错机制. 该容错机制在迭代任务发生故障时采用乐观补偿的思想恢复任务, 在迭代执行过程中不采用任何额外的容错手段( 不会引人额外的容错开销) , 采用用户自定义的补偿函数收集健康节点上的迭代数据, 并结合初始的迭代数据对故障节点上丢失的分区数据进行恢复, 继续执行至迭代收敛状态, 保证了迭代任务的高效顺利执行. 由于乐观迭代容错机制并不保证得到的结果与无故障执行得到的结果完全一致, 因此针对精度要求较高的迭代任务, 本文结合Fl i n k 系统的迭代数据流模型, 进一步提出一种基于头尾检査点悲观迭代容错机制. 与传统的阻塞检査点( 阻塞下游操作符) 的工作方式不同, 该容错机制以非阻塞的方式编写检査点, 充分结合F U nk 迭代数据流的特点, 将可变数据集的检查点注人迭代流本身. 通过设计迭代感知, 简化了系统架构, 降低了检査点成本和故障恢复时间. 本文基于Fl i n k 系统, 在大量的真实数据集和模拟数据集上, 从增量迭代和全量迭代两方面对提出的两种容错机制进行了全面的实验研究, 验证了本文提出的迭代容错优化技术的高效性. 实验结果证实, 本文基于Fl i nk 系统提出的乐观容错机制和悲观容错机制在计算效率上均优于现有的分布式迭代容错机制. 前者在全量迭代计算任务中运行时间最髙可提升2 2 . 8 % , 在增量迭代计算任务中最髙可提升3 3. 8 % ; 后者在全量迭代任务中最高可节省1 5 .3 % 的时间开销, 在增量迭代任务中最高可节省1 8 . 5 % 的时间开销.关键词分布式迭代计算; Apa c h e Fl i n k ; 乐观容错; 悲观容错; 检查点中图法分类号TP 1 8DOI号1 0 . 1 1 8 9 7/SP . J .  1 0 1 6.  2 0 2 0 . 0 2 1 0 1E ffi c ien t F aul t-Tolera nt Proc ess in gTe ch nol ogyforFl in kI t era t iveComput ingGU OWe n- P en gnZ H AO Y u-H ai1)WAN GGu o- Re n2 )WEI Li u-Gu onl) (.S ch o o lo fCo mp u t er Sc ie nc e a n dEng i n eer in g ^No rth ea s te rn Un ive rs i ty * Sh en ya ng1 1 0 1 6 9 )2 > ( S c ho ol  o fCo m pu te r Sc ien ce a nd Tec h n o lo g y? Beiji ng I n s t i t u t e of Tech n ol o gy Un i vers i ty , B eiji ng1 0 00 8 1 )Ab s t rac tI t e r a ti ve c a l c ul a t i o n is  th e r e pe a t ed e xe c ut io no f th e same l og i ca nd i sw i d el y u s e d i nva r io us ma chi n ele arn in gan dda t am i ni ngm et hods .I n t he f ie l dofb igdataproc ess in ga nda na l ysi s ,d i s t ri b ut e di te r a t i vecom p ut i ng i s o ne of t he c ur r e nth ot re s e a r ch i s s u es .F au l t to l er a n ce i s an e c e s s a ryg ua r a n te e f orh i gh a va ila bili t yo fd i s t r i b ut e ds y st em s .Al t ho ug h t he f a u l tto l e r a nc em ec han i smof e x i s t i ng di s t r i but ed sy s t em sp er form sw el l i nhi gh a vai l abi l it y ,i t ig no r es th epr ob le mof  fau l t to l e ran c ee ff i c i e n cyf or i t er a ti ve co mp ut i n g.T h i s pa p er  sys t ema ti ca l ly st u d ie s t h e i te ra ti v e收稿日期: 2 0 1 9- 0 9 - 0 2; 在线发布日期: 2 0 2 0-0 2 -1 3 . 本课题得到科技部重点研发项目“ 云计算和大数据” 重点专项项目( 2 0 1 8 YFB1 0 0 4 4 0 2 )和国家自然科学基金( 6 1 7 7 2 1 2 4 ) 资助. 郭文鹏, 硕士研究生, 主要研究方向为大数据. E-ma i l : 1 7 6 2 8 8 2 2 3 2 4 @ q q . c om. 赵宇海( 通信作者) , 博士, 教授, 中国计算机学会( 〇^ ) 高级会员, 主要研究领域为数据挖掘. £-1 1^丨: 21 13 〇7 1 11^ @1 1^1 .11扣. 6(11 1. 〇1 . 王国仁, 博士, 教授,中国计算机学会( CCF ) 高级会员, 主要研究领域为数据库. 韦刘国, 硕士研究生, 主要研究方向为大数据.2 1 0 2 计算机学报 2 0 2 0 年f a ul t-t o le r a n te f fi c i e nc yof ba tc h-f lo w h ybr id bi g da ta c omp ut i ng sy s t e mAp ac he F li nk .Wh enpe r f orm i ngs t r e am pr o ce s s i ngt a s ks , F lin k us es a “d i s t r i bu t ed sn ap sh ot” ch ec kp oi nt m ec ha n is mt ocom p l et e fa u l tto l er a n ce.F or it e r a t iv e a na l ys is of ma s s i v eda t a ,ch e ck po in t s a d dun ne ce ss a ryde l a y.Wh e np er f orm in gb a tc hp roc es s in gt a sk s ,F l in k us es t h et a sk e xe cu ti o nme t ho dfr om t hebe gi n n i ngt oa ch i eve f a u l t t ol e ra n ce .A l t h ou gh t hi sme t hod i s s im pl e t oi mp l em en t ,i tb r i ng s a l otof t i meo ver he a d.I nv i e wof t h e a bo vep r ob l ems ? th i s pa p er fi r s tpro po s e s a n op ti m i s t i c i t e r a ti vefa u l tt ol e r a n c eme ch a n i smba s edo nc om pe ns at i o n f u nc t io n s .Th i sf a u l t-t ol e ran tme ch a ni sm us e sopt i mi s t i cc omp en s a t i ont or ec ove r t as k s w h e ni t e ra t i v et a sk sfa il .I td oe s n ot use a nya dd i ti on a lf a u l t-t o l e r a n tme th od s ( i td oe sn oti nt r o du c e a d di t i ona lfa u lt-t ol er an t ov e rh e ad ) d ur i n gi t e ra t i v ee xec u t i o n , a nd u s e s u s er - d ef i ne d com pe n s a t i on fu n c t io ns t o col le c t he a l t h yn od e s.I t e r a t i ve da t a *c om bi n edw i t ht he i ni t i a lit e r a t iv ed a t a , r ec ove r sth el os tpa r t i t ion d a ta o nt he f a i l edno de ,a ndc ont i nu e sex ec u t iontot hei te r a ti vecon ver ge nc es t a t e ,e n s u r i ngt h ee ff i c i e nt an ds moot he x ec ut i ono f t h e it e r a ti v et a sk . Be c a u se t he op t im i s t ic i t er a t i vef a ul t t ol e r a nc em ec h an i smd oe s no tg ua r a n t eet h at t he r e su lt s o bta i ned a r e comp le te l ycons is t e nt w i tht h ere s ul t s ob ta in edb yfa ul t-fr e e e xecu ti on ,f or  t h ei t e r a t io n ta s ks  wi t h hi g he ra cc u ra c yr e qu ir e me n t s ,t h is  pa p er c omb i n es t h e it e r a ti ve da t af l ow mo d e lo f t h eFli n k s ys t e mt o f ur th e rprop o s e a he a d-to-t a il ch e ck po i nt .P e s si mi s t ic  i t er a t i vef a ult to le r an cemech a ni sm.U nl ik e t ra di t iona lb l oc ki ngch ec kpoi n ts ( bl ocki ng downstreamope ra tor s ) ,t h i s fa u l t-t ol e r a ntm ec ha n i smw r i t esc he c kp oi n t si na non- b l oc k in gma n ne r ,fu l ly co mbi n e s th ec ha r a c t er is ti c s of F l in ki t e ra t i ved at a f l ow , a ndinj e c t s va r i ab l eda t as etc h eck po i nt si nt oth ei t e ra ti ve fl o wi t s el f.Byd es ig n in gi t er a ti ve awa r e n es s ,t h esy s t e mar ch i t ec tu r ei s s i mp l if i e d ,a ndc he c kp oi n t co s t s  an d fa i l u r e r ec o ve ry ti m es  a r e re d uc ed .T hi spa pe r i s ba s ed on th e Fl i n k sys t em .O na la rg en um b e r o f r e al da t a s et s  an ds im ul at e dd at as et s ,a  comp r e h en s i ve e xp e r i me nt a ls t udyo f th e t w opr o po s edfa ul tt ol e r a n c em ec ha n i sm s f rom t he a s pe ct s of i nc r e me nt a l i t er at i on a n d f u l li t er a t i on is c on du c t ed , an dt he  ef fe ct i ve n es s of t hepr o pos edi t er at i ve f a ul tt ol e r an ce op ti m iz at i ont e ch no l og y i sve r if i ed .Ef fi c i e n cy.T h ee x pe r i me n ta lr e su l t sco nf i rmt h a tt h eop t i mi s t i ca ndp es s i mi s t i cfa u l t-to l er a nt me ch a ni sm sp rop os edi nt hi spa p e rba s e do nt h eFli n ks ys te ma r es up er i o r tot he ex is t in gd i s t r i b ut ed it e ra t i vef a ul t-t ol e ra n tm ec ha n i sms in t erm s of com pu t at i on a le ff i ci e nc y.T he f orm er ca n i n cr e a se t h er un ni n g t im eb yu p t o 2 2 . 8 % i nf u l li t e ra ti ve com p ut i ngt a sk s a ndu p to 3 3 . 8 %i n i n c r e me nt a l i t e r a t i v e c omp u ti n gt a sk s ;t he  l at t e r c an s av e up t o 1 5 .  3 %o ft h et im eo v er h ea di n f u l li t er a t i vet a sk s ?a n d i n in c r eme n t a l i t era t i ve t as k s S a ve s up to 1 8 .  5 %of t i me.K eywordsdi s t r i b u t e d i t er a t i ve c a l c ul a t i on ;A pa ch e Flin k ;op t im is ti c fa u l t to l e ra n ce ;p es s i mi s ti cf a ul t t o l era n ce ; c h ec k poi n ti 引言迭代计算通常是数据挖掘和机器学习算法的核心部分, 在各类应用中都普遍存在[ 1 ]. 在搜索领域, 由Go og l e 提出的著名的网页排序算法P ag e Ra nk [ 2 3],其核心思想就是根据网络之中不同网页之间的链接关系进行迭代计算[ 1 ], 最终的排名即是迭代最终收敛的值或重要性; 在社交网络[5 7] 领域, 很多好友推荐算法都是通过利用现有用户的好友关系网络图通过迭代计算来挖掘用户之间可能存在的潜在链接关系; Ra n dom Wa l k[8 9] 算法通过迭代计算来求解图中某节点到其它节点的概率; 在影音推荐领域, 常用的推荐算法是按照用户的喜好来对用户进行聚类, 然后向用户推荐同类用户所喜欢的影音资源, 这类方法统称为协同过滤推荐[i M 1]. 其中基于矩阵分解的协同过滤算法, 如交替最小二乘法( ALS )和奇异值分解等( SVD) 等都包含迭代计算; 在图论郭文鹏等: 面向Fl i nk 迭1 1 代计算 的 高效 容错 处理技术 21 0 3 期中的连通分支算法也是基于迭代实现的. 在数据分析领域中, 常用的K-M e an s[1? 聚类算法、联合聚类、点对聚类等都包含迭代计算, 每次迭代时更新顶点和模型参数的状态, 直到满足收敛或停止标准.随着数据的规模日益增长, 分布式迭代计算成为大数据处理与分析的研究热点之一. 近年来, 流行的大数据处理平台H a doopD 3 ]、Sp ark [ 1 4 ] 和Fl i n kD 5 ]都具备处理迭代任务的能力. 现有的分布式迭代包含全量迭代和增量迭代两种. 全量迭代总是重新计算迭代的中间结果. 然而许多情况下, 迭代任务的中间状态会以不同的速度汇聚. 例如, 在大图的单源最短路径的计算中. 在这种情况下, 系统总是重新计算整个中间状态包括不再变化的部分, 从而导致资源浪费. 增量迭代可以有效地缓解该问题. 该模式使用两个数据迭代状态模拟迭代计算: 解集和工作集. 解集保存当前中间结果, 而工作集保存解集的更新结果. 在增量迭代期间, 系统使用工作集有选择地更新解集的元素, 并根据更新计算下一个工作集.一旦工作集变空, 迭代就会终止. 无论是全量迭代还是增量迭代, 对海量数据而言, 都是极其耗时的, 并且消耗大量的计算资源.由于分布式计算通常涉及大量计算节点的协同工作, 容错性是分布式系统高可用性的必要保证. 主流的分布式大数据平台针对迭代计算任务采取了不同的容错机制. 分布式系统Ha d oo p 的迭代容错机制主要是通过检查点机制的方式实现, 在每个计算的结束阶段设置检查点, 发生故障时从检查点读取数据重新执行. 反复从底层文件系统中读取数据会造成大量的磁盘1 0 开销. 分布式系统S pa rk 框架中的Sp ar kSt re am i ng 采用记录更新的手段实现容错,通过Li n ea ge? 技术来实现. 对于窄依赖( 父RD D的每个分区只被子RDD 的一个分区所引用) 的数据因发生故障丢失时, 只需要对丢失的那一部分数据进行恢复并重新计算; 对于宽依赖( 父RDD 的每个分区可能被多个子R DD 引用) 则必须将其祖先RD D 中的所有数据块全部恢复并重新进行计算. 在宽依赖场景下S pa rk 引人了检查点机制, 在执行过程中选取适当的时机备份, 通过缩短L i n ea ge 链长度来减少容错开销. 但在执行过程中, 频繁的数据备份操作也会产生极大的网络和磁盘1 〇开销. 分布式系统F l in k 系统现有的批处理和流处理的容错分别采用了逆向恢复容错技术和前向恢复技术. 批处理容错机制是当J o b 失败时通过使用重启策略对整个J ob 重启. 流处理容错机制是基于状态一致的分布式快照实现的, 这些快照保存了执行图中所有算子及传输通道的状态, 这些轻量级快照也可以被视做一种另类的检查点. Fl in k 的分布式快照采用Ch a nd y-Lamp or t[ l 7] 算法实现. 该容错机制虽然高效, 但需要额外的检查点协调者来实现, 管理复杂,且会带来额外的写入开销. Fl i n k 虽然针对其流处理也可以进行迭代计算, 在实际应用场景下, 大部分的迭代计算任务还是基于批处理执行. 综上, 现有分布式系统的容错机制大多面向通用的计算任务, 在迭代任务上的容错效率较低, 没有结合迭代计算任务的特点, 代价开销较大.传统分布式系统的容错机制大多采用了悲观的检查点容错机制. 通过缓存管理检查点的实现, 与流水线数据流无关. 然而, 这些检查点是以阻塞的方式备份数据, 开销较大, 且忽略了迭代处理的迭代控制, 这使系统设计复杂化, 因为需要额外的组件来管理检査点. 此外, 以分布式方式在海量数据集上执行迭代算法, 算法的中间结果必须在机器之间进行分区存储. 执行失败将导致丢失这些分区的子集, 要继续执行, 系统必须首先恢复丢失的数据. 发生故障时, 系统将暂停执行, 从先前写人的检查点恢复一致状态并继续执行. 这种方法的缺点是, 即使在无故障的情况下, 它也会给执行带来开销. 对于海量数据的迭代算法, 检査点不必要增加了计算的延迟. 现有分布式系统缺少了乐观的容错机制, 悲观的容错机制忽略了分布式迭代数据流的特点, 以阻塞的方式实现容错, 代价开销大, 容错效率低.针对现有分布式系统迭代容错机制的不足, 本文面向大规模分布式迭代计算任务主要贡献有:( 1 ) 提出了基于补偿函数的乐观容错机制. 该容错机制在迭代执行过程中不采用任何额外的容错手段( 不会引人额外的容错开销) , 在发生故障时, 采用用户自定义的补偿函数收集健康节点上的迭代数据,并结合初始的迭代数据对丢失的分区数据进行恢复, 保证了迭代任务高效顺利的执行.( 2 ) 提出了一种基于头尾检查点的悲观容错机制. 与传统的阻塞检查点不同, 该容错机制以无阻塞的方式编写检査点, 不会破坏流水线操作任务. 将可变数据集的检査点注人迭代数据流本身, 简化系统架构并有助于在迭代处理期间检查点的创建.( 3 ) 将提出的面向迭代任务的乐观补偿函数容错机制和悲观的头尾检查点机制基于高度创新的开源流处理器F l i nk 进行实现. 乐观的补偿函数机制2 1 0 4 计算机学报 2 0 2 0年的实现设置了收集数据和补偿恢复丢失数据的接口, 可供用户直接使用. 头尾检查点机制的实现, 在Mi nk 迭代处理框架中新增了头尾检查点选项, 用户可根据迭代任务类型直接选择.( 4 ) 在真实数据集和模拟数据集上从全量迭代和增量迭代方面进行了系统的实验研究, 验证了本文提出的容错技术的高效性.本文第2 节介绍相关工作; 第3 节介绍文中涉及的基本概念; 第4 节描述基于补偿函数的乐观容错机制; 第5 节介绍基于头尾检査点的悲观容错机制;第6 节为实验分析部分; 第7 节总结了本文的工作.2 相关工作目前, 国内外被各大企业和研究机构所使用的分布式计算系统主要包括批处理系统, 如H a do叩.流处理系统, 如St orm 和Sa mza . 混合处理系统( 既支持批处理又支持流处理的框架) , 如Sp a rk 和Fli n k . 各个计算系统都具有自己独特的容错机制,但总体上可以将这些容错机制分为两类,一类是基于检查点的容错机制,一类是基于记录更新的容错机制.分布式系统环境下, 假如某个计算节点出现故障, 集群和任务将进人故障, 容错恢复的目标是采取相应的措施, 将任务和系统转换到正确执行的状态. 分布式容错恢复技术整体上包括了前向恢复技术( Forwa rdRe cov ery )[ 18 ] 和逆向恢复( Ba ckw ar dR e cov ery ) 技术[ 1 9 ]. 文献[ 2 0 ] 中提出了一种分布式曰志恢复系统的数据恢复方法. 三阶段提交协议比两阶段提交协议能更好地实现分布式事务执行的无阻塞, 在分布式数据库发生故障时可以有效地恢复分布式数据库中的数据, 保证了分布式日志恢复系统的高可用性和高可靠性. 文献[2 1 ] 中研究了分布式系统下基于检査点的容错服务, 利用系统失效关联性特征来建立模型, 得到减小分布式任务的完成时间的检查点放置策略, 从而在保证系统可靠性的前提下, 降低容错服务的实现代价, 提高分布式系统的运行效率. Du do l a dov 等人在文献[2 2] 中提出了一种使用算法补救的容错机制, 该机制利用了数据挖掘和机器学习中使用大量虚拟算法的鲁棒性、自校正性, 这些算法从各种中间一致状态收敛到正确的解. 该函数在算法上创建这样的一致状态, 而不是回滚到先前的检査点状态. 该优化机制不会检查任何状态, 并且在保证容错所需的开销方面具有最佳的无故障性能.在过去几年中, 出现了许多优化的迭代计算系统.像T wi s t e r[2 3] 或H aLoop[2 4] 这样的M a pR ed uc e[ 1 3]扩展, 以及像Sp a r k 这样的系统能够有效地执行某类迭代算法, F lin k 系统在全量迭代的基础上, 新增了增量迭代功能. 增量迭代是通过部分计算取代全量计算, 在计算过程中会将数据分为热点数据和非热点数据, 每次迭代计算会针对热点数据展开, 这种模式适合用于数据量比较大的计算场景, 不需要对全部的输人数据集进行计算, 所以在性能和速度上都会有很大的提升. 而这些分布式计算系统的容错机制大多以悲观的方式实现, 且面向的通用的计算任务. 对于迭代任务而言, 容错开销大, 计算效率低.缺乏了对乐观容错机制的设计, 且采用的悲观容错机制多数以阻塞的方式实现. 没有结合迭代数据流的特点, 引人了不必要的额外开销. 此外, 现有的分布式系统的检查点机制基于阻塞的方式来实现, 即通过阻塞下游操作符等待完整数据的到来. 以阻塞方式实现检查点产生了较大的时间开销. 针对这些问题, 本文提出了面向大规模迭代计算处理的高效容错技术. 由于F l i n k 作为高效的开源批处理器, 在批处理和流处理的计算效率上均优于H a doop 、St orm 和Spa rk [2 3]. 本文基于F l i nk 系统实现了基于补偿函数的乐观容错机制和基于头尾检查点的悲观容错机制, 并在大量数据集上从全量迭代和增量迭代方面进行了实验研究与分析.3 基本概念本节给出文中涉及到的一些基本概念并对要解决的问题给出形式化描述.定义1 ( 步函数) . 在迭代计算中, 对每一轮迭代输入的数据集进行转换操作的函数称为步函数( St e pFu nc t io n) .例如, P ag eR an k 全量迭代算法在执行时, 每一轮迭代都要对顶点的r a n k 值进行更新. 更新r a nk值的操作有Jo iiu F i l te r 等操作符, 这些操作符构成的数据流图即为该算法的步函数.定义2 ( 超级步) . 在迭代计算中, 从迭代输人开始, 经过步函数的转换, 到更新为下一轮迭代输入的整个流程称为超级步.如图1 为F l i nk 官方文档展示的迭代超级步的粒度即同步的粒度. 步函数是超级步的组成部分, 从第一个超级步迭代输人开始, 经过步函数的转换并郭文鹏等: 面向Fl in k 迭1 1 期 代计算的 高效容错处理技术 2 1 0 5更新为第二个超级步的输入. 该流程即为一个超级步.1 st Sup er St ep2n d Su p er Step3 rd  Sup er St ep?Step Fu n cti o n;Step Fu nct i o n iStep Fu nctio n图3 全量迭代计算示意图Barrier  Sy nch r on izati on图i 迭代超级步示意图定义3 ( 乐观容错机制) . 在分布式系统环境下, 如果某个计算节点出现故障, 则采取相应的容错机制来把系统恢复到无错误状态. 乐观容错机制采用乐观的态度, 即假定所有的故障及其恢复策略都事先已知. 当系统发现错误后, 试图把系统带入一个新状态. 该机制要求系统事先掌握可能出现的故障.例如, 本文提出的乐观补偿恢复机制, 在迭代任务执行之前, 需要对分布式系统可能出现故障丢失数据的情况进行采取补偿恢复措施. 如果任务没有出现故障, 则顺利完成执行. 如果出现故障则采用预先定义的补偿措施对故障进行恢复, 使用恢复后的数据继续迭代的执行.定义4 ( 悲观容错机制). 悲观容错机制与定义3 的乐观容错机制相反, 该机制采用的是悲观的思想, 假定故障的产生是未知的, 在系统执行任务的过程中定期保存一些结果和历史记录信息.一旦发生故障, 则可恢复到最新记录的状态.例如, F li nk 系统采用的分布式快照机制就是一种悲观的容错机制, 如图2 所示, 以固定的时间间隔将b a r r i e r 注人数据流, 进行Ch e ck p o i nt 备份. 当出现故障时, 恢复到最近的C he ck po in t 时的状态.da ta s tream_ n ezu r ec o rdsold er records —^ch eckp oi n tc h eckpo i n tstr eamrecor dba rri er nb ar ri er  t i—1{ event)1, 输出迭代i 〇次后的结果. 在迭代过程中, 每一轮迭代都要对所有的数据进行加1 操作. 这种对全量数据进行转换的迭代过程即为全量迭代.定义6 ( 增量迭代) . 增量迭代计算过程如图4所示, 通过部分计算取代全量计算, 在计算过程中会将数据集分为热点数据和非热点数据, 每次迭代计算会针对热点数据展开, 不需要对全部的输人数据集进行计算.图4 增量迭代计算示意图例如, 图论中的连通分支算法, 该算法用于求解图的连通性问题. 迭代过程为: 首先, 初始化每个顶点所属的分类值( 即所属的连通分量组), 每个顶点初始值等于该顶点值的Id . 其次, 每个顶点搜索其相邻的顶点, 如果顶点的分类值小于该顶点的分类值, 则更新该顶点的分类值, 并在连通图中传播. 最后, 当没有顶点需要更新时, 所有连通图包含的顶点具有相同的分类值, 算法结束. 这种只需对部分数据进行转换的操作即为增量迭代.4 基于补偿函数的乐观容错机制p ar t  o fpa rt o fpa rt  ofch eck p oi n t  n + 1checkpo i n t nc h eck po i n tn — 1图2Fli n k 系统分布式快照示意图定义s ( 全量迭代) . 全量迭代计算过程如图3所示. 在数据流接人迭代算子的过程中, 步函数每次都会处理全量的数据, 然后计算下一次迭代的输入,即图中的N e x tP a r ti a l S ol u t i o n , 最后根据触发条件输出迭代计算的结果.例如, 给定一组数据, 迭代步函数为迭代数据加本节针对现有分布式计算系统悲观容错的迭代容错机制额外开销大, 需要额外的组件控制检查点协同者, 实现复杂等特点. 提出了一种面向迭代任务的乐观补偿函数容错机制. 该容错机制在迭代执行过程中, 不会引人任何额外的开销. 如果出现故障,则采用用户自定义的补偿函数收集健康节点上的数据, 并结合初始迭代数据对丢失的分区数据进行恢复. 现有的分布式系统未引人乐观恢复机制的原因之一在于, 补偿函数完全由用户编写, 实现难度大.2 1 0 6 计算机学报 2 02 0年本节的乐观补偿函数机制在实现时为用户提供了收集数据和恢复数据的接口, 可供用户直接使用. 该机制保证了迭代任务高效顺利的执行, 得到的结果可以收敛到无故障执行时的近似状态.本节首先分析了分布式迭代的收敛性, 证明了补偿函数的乐观容错机制的正确性. 然后从全量迭代和增量迭代的角度实现了补偿函数容错机制.4. 1 分布式迭代计算的收敛性在计算机科学中, 迭代是对一段程序的反复执行. 迭代可以表示一种状态, 该状态以可变重复的形式存在. 迭代计算是数学领域中的常见的计算方式,常见的应用有矩阵求解特征值问题以及方程组求解等问题. 迭代的求解思路是不断趋近, 选择一个粗略的初始值, 采用迭代公式不断地更新该值, 如果该值满足收敛条件即精度满足或者迭代次数满足则终止. 否则, 将继续更新和计算该值. 大数据系统的分n od e ln od e 2node 3nod e4图5Fli nk 系统中的分布式迭代数据流其中, 分布式迭代计算可以表示为x* =/( 工以-1 )) , 々=1 , 2 ,…, ”( 1 )其中变量i 表示的迭代过程中不断更新计算的数值, 即迭代变量. 公式左边的V 表示迭代计算到第办次时的值, 公式右边/ 是第々次迭代结果计算的通用表达式, 即迭代函数. 分布式迭代算法执行过程中, 每一轮迭代所需的数据可以表示为P , 记为迭代变量. 可以使用向量/T=( x P , x f ,…, :^) 来表示迭代变量, 其中每个x f 都是一个迭代元素. /为JT 的映射, / 是需要反复执行的一系列操作集合( /, , /2 ,…, /,,) , 每个/, 函数只负责计算向量P 的第/ 个元素, 因此式( 1 ) 等价于方程组( 2 ) 的形式:=/,( :^卜1 ), x广d,…, 工广") ,i = 1 , 2 ,…, n( 2 )分布式迭代计算的初始向量可以表示为ur , :^ ,…, :^ ) , 利用式( 2 ) 可逐次计算迭代向量文⑴=( x j* >, 工p ,…, 工, ) , 是=1 , 2 ,…, ” ? 若向量序列W } 无限趋近于向量;r =(xr,…,〇, 即, = / ( , ) . 则向量为迭代计算的解. 在某些特殊形况下求得最佳, 并非容易, 可能需要大量的迭代过程. 但根据迭代求解的特点可知, 满足迭代算法精度的近似值y 可以充当算法的解.迭代计算的构建比较简单, 但许多迭代模型的计算过程都并非趋近于特定解. 也即不会收敛. 现实生活中只有收敛的迭代模型对用户有真实的意义,故迭代的收敛标准和条件对于迭代计算而言, 尤为关键.为了便于理解, 可以将式( 2 ) 转化为jcu , = Mxa  ̄n+ p .k = l , 2 ,-, w( 3 )其中M 称为迭代矩阵,/} 为一向量. 当式( 3 ) 收敛时, 则有:jc* = Mx+ p( 4 )记误差向量那么jc?当且仅当# — 0 . 由式( 3 ) 和( 4 ) 可得误差向量的递推公式:e*= Me' * — ", 々= 1 , 2 ,…, w( 5 )对式( 5 ) 递推得到:y = Me?丨>, 6 = 1 , 2 ,…, ?( 6 )因此, 当时, V —0 的充分必要条件是: 0 .推论1. 迭代计算是否逼近某个值与迭代构成的矩阵M 相关, 即迭代是否收敛与迭代计算的函数密不可分. 因此, 迭代计算过程具有很好的健壮性,在迭代循环的迭代过程中迭代变量产生一些误差,模型的最终收敛也不受影响. 现实迭代算法中的迭代矩阵iW 通常由概率组成, 因此可以得到在海量数据的迭代处理过程中, ¥— 0 .由上述迭代计算的收敛性分析可知, 基于补偿函数的乐观的容错机制具有一致性的收敛状态. 乐观容错恢复的原理图如图6 所示. 在第二次迭代过程中n od e 3 上发生故障, 通过补偿函数对健康节点n o de l 和n 〇d e2 上的数据进行收集, 并结合初始的n od e ln o de 2n od e3 n od e4图6 乐观容错恢复原理图郭文鹏等: 面向F li n k 迭1 1 期 代计算 的高效容错处理技 术 2 1 0 7完整数据对丢失的数据进行补偿恢复得到新的迭代数据, 继续执行迭代计算. 迭代计算的收敛性特点确保了结果总是朝着正确的方向无限逼近, 乐观容错机制使用该特点, 在发生故障时, 通过补偿丢失数据的近似值作为新的变量继续迭代, 保证了大规模分布式迭代计算结果的正确性.4. 2 基于乐观容错机制的全量迭代算法本节主要基于分布式全量迭代算法实现基于补偿函数的乐观容错机制, 以典型的P a ge Ra n k 算法为例, Pa g eRa n k 算法的介绍详见文献[2 - 3] . 本节进一步基于M i nk 系统设计和实现了具有乐观容错机制的P ag eR a nk 算法.本节以图7 所示的网页链接为例, 介绍基于补偿函数乐观容错机制的P a ge Ra n k 算法的设计与实现. 当前网络中共有A , B , C , D , £, F 共5 个网页,使用有向图G =( V , £) 表示该网络. 若网页A 包含一个到B 网页的链接, 则会有一条边( A , B ) . 网页中顶点集合^ ={八, 5 , (:, 0 , £:} , 网页中边集合£:={ ( A , B ) , (A , C) , ( A , D ) , ( A , E ) , ( B , A ) , ( B, D ) ,( B , F ) , ( C , A ) , ( C , F ) A D , B ) A D , C ) A D , E ) ,( D , F ) , ( £, C ) , ( F , E )} .图7 网页链接示例图如果一个网页有x 个链出网页, 则该从网页跳转这: T 个网页的概率都为1 / X , 该网页贡献给其跳转网页心吨/ x,. 例如网页A 包含4 个跳转链接,则从A 网页跳转到网页B、C、D、£的概率为均为1 / 4 , 由此可以推出一个网络内网页互相跳转的概率矩阵表示从网页f 跳转到网页j 的概率.fl / xi,(.j , i ) 6EMu j=( 7 )l O ,〇, 0¥E使用概率矩阵M 表示图7 中网络中各网页之间的跳转概率可以表示为M=0 1 / 3 1 / 2 0 0 01 / 4 0 0 1 /4 0 01 /4 0 0 1 / 4 1 01 / 4 1 / 3 0 0 0 01 / 4 0 0 1 / 4 0 10 1 / 3 1 / 2 1 / 4 0 0 ,由于网络中可能会出现这样一些网页, 它们除了本身之外没有其它的出链, 或者几个网页构成的循环圈, 这样会导致这个或这些网页的Ra n k 值只增不减, 为了规避这种情况, Pa g eR a nk 算法引人了一个阻尼因子a , 假定用户会有a 的概率通过网页之间的链接去访问网络中的其它网页, 有( 1一a ) 的概率通过直接输人浏览器地址访问. P ag e Ra nk 值的计算公式为叫)= 1^ + ? 2 微( 8 )其中Pi? ( />,) 表示网页Z'的Ra n k 值, L( 九) 表示网页_ ;_的链出网页数. 在实际应用中, 阻尼因子a — 般取为0 . 8 5. 而在多次迭代过程中一般很难达到精确结果, 所以一般取两轮迭代的无穷范数作为收敛精度, 当相邻两轮迭代变量Ra n k 之间的绝对值之差小于给定的阈值或满足最大迭代次数时, 迭代终止.记每第i 轮迭代的Ra n k 值为记' 以图7 网络拓扑为例, 每个网页初始的Ra n k 值可以表示为1 ?( 0 >={ 1 / 6 , 1 /6 , 1/ 6 , 1 / 6 , 1 / 6 , 1 /6 }T, 经历1 0次迭代网页Ra n k 值变化如图8 所示.r O.  1 6 6 6 6 7'] 〔0 .  1 4 3 0 5 6]r O . 1 5 3 0 9 0 'j0 .1 6 6 6 6 7 0.  0 9 5 8 3 3 0 . 0 7 8 2 7 30 .1 6 6 66 7> => <0.  2 3 7 50 0 0 ? 1 5 9 7 3 10 .1 6 6 66 7 0 . 1 0 7 6 3 9 0 . 2 8 2 5 5 20 . 1 66 6 6 7 0 . 0 95 8 33 0 . 2 2 9 9 7 40 . 1 66 6 6 7 . . 0 . 1 78 4 7 2 . . 0 . 1 7 5 9 6 4 .( 0 ) ( 1 ) ( 2 )r 0 . 1 1 5 0 6 3'jr O . 1 6 1 2 5 6^r O . 1 5 3 1 7 8 '|0 . 0 75 0 7 4 0 . 0 6 6 3 8 9 0 . 0 7 4 2 9 50 .2 70 5 5 2>=> <0 . 2 5 7 3 3 6 0 . 2 2 6 5 3 30 .0 7 970 9 0 . 0 707 2 2 0 . 0 7 8 0 7 70 . 2 24 64 3 0 . 1 7 9 1 0 3 0 ? 2 2 57 6 0. 0 . 1 3 2 60 5 , . 0 . 1 78 1 94 .. 0 . 1 6 8 2 0 6>( 3 ) ( 4 ) ( 5 )(0 . 1 4 2 32 7]r O.  1 5 9 0 7 3 r O . 1 5 4 3 9 6'j0 .0 74 1 4 2 0. 0 7 1 94 7 0 . 0 7 5 0 0 60 . 2 6 60 3 7> => <0 . 2 5 64 9 6 0 . 2 5 09 8 00 . 0 78 60 1 0.  0 7 6 2 5 1 0 . 0 7 9 1 8 80 . 2 1 7 1 1 7 0. 20 7 0 28 0 . 2 2 4 4 1 5- 0 . 1 58 9 1 8 . . 0.  1 7 5 7 7 5 . . 0 . 1 7 0 5 9 9 .〔0 ? 1 5 2 9 1 8〕( 7 )r O . 1 5 8 9 3 8')0 . 0 7 4 6 3 7 0 . 0 7 4 2 9 60 . 2 6 5 3 9 0 0 . 2 6 0 9 9 50 . 0 7 9 0 6 1 0 . 0 7 8 6 4 20 . 2 1 9 6 4 6 0. 2 1 8 5 7 9. 0 . 1 6 9 7 4 6 - , 0 . 1 7 5 7 3 8 .( 9 ) ( 1 0 )图8P ag e Ra n k 迭代Ra n k 值变化图由图8 可得, 在第1 0 次迭代后, Ra n k 值变为< 0 .1 5 8  93 8 , 0 . 0 7 42 9 6 , 0 .2 6 0 9 95 , 0 . 0 78 6 4 2 , 0 . 2 1 85 7 9 ,2 1 0 8 计算机学报 2 0 2 0年0 .1 7 5 7 3 8 }T. 经计算可得, 在第1 6 次迭代时, 其Ra n k值的收敛精度达到了1 〇_ 3, Ran k 值收敛为{ 0 . 1 60 3 2 9 ,0 . 0 7 59 5 8, 0 . 2 6 7 50 9 , 0 . 0 8 03 8 6 , 0 . 22 6 05 6 , 0 .1 7 7 3 8 7}T.假设在某次迭代过程中, 导致分区数据丢失, 可以设计补偿函数统计当前丢失的数据Ra n k 值个数为《以及丢失的总概率为为丢失的网页补偿一个相同的Ra n k 值/? / ? , 然后和未丢失的数据一起继续执行迭代任务.以图7 中的网络拓扑为例, 假设在第4 迭代, 集群中的计算节点n ode l 发生故障, 并且no de l 上保存的是顶点S 和C 的数据. 在发生故障后, 对丢失的数据进行补偿恢复, 得到新一轮迭代的输入. 迭代过程中网页的Ra n k 值变化如图9 所示.r0 .  1 6 6 6 6 7'0 . 1 4 3 0 5 6 0 .  1 5 3 0 9 0'0 .  1 6 6 6 6 7 0 . 0 9 5 8 3 3 0.  0 7 8 2 7 30 .  1 6 6 6 6 7 0 . 2 3 7 5 0 0 0-  1 5 9 73 10 .  1 6 6 6 6 7>—^*0. 1 0 7 6 3 9>= >0.  2 8 2 5 5 20 . 1 6 6 6 6 7 0 .0 9 5 8 3 3 0.  2 2 9 9 7 4.0.  1 6 6 6 6 7 . ,0 . 1 7 8 4 7 2 , ,0. 1 7 5 9 6 4,( 0 ) ( 1 ) ( 2 )^0 . 1 1 5 0 6 3'0 . 1 6 1 2 5 6 0 .1 6 1 2 5 6'0 . 0 7 5 0 7 4 0.0 6 6 3 8 9 0 . 0 6 6 3 8 90 . 2 70 5 5 20 . 0 7 97 0 9> ■=>* >= >^0 .1 6 4 0 2 90 . 1 6 4 0 2 90 . 2 2 4 6 4 3 0 . 1 7 9 1 0 3 0 .1 7 9 1 0 3. 0 .  1 3 2 6 0 5..0 . 1 7 8 1 9 4, .0 .1 7 8 1 9 4」( 3 ) ( 4 ) ( 4,)'0 .  1 1 3 5 2 3 0 . 1 5 6 3 7 1'0 .1 6 0 2 6 7'0 . 0 9 4 1 2 3 0 . 0 6 5 71 5 0 . 0 7 4 3 3 50 . 2 4 6 3 6 1 0 . 2 7 4 4 6 5 0 . 2 3 7 3 9 60 . 0 7 8 0 7 7>=>? <0 . 0 7 5 7 9 2>- <0 . 0 7 6 8 4 80 . 2 4 5 5 8 8 0 . 1 9 1 8 3 7 0 . 2 2 1 3 5 3. 0 .  1 4 8 3 7 9 . . 0 . 1 7 2 9 6 3 , . 0 .1 7 6 3 7 2 .( 5 ) ( 6 ) ( 7 )?0 . 1 4 6 9 5 5'0 . 1 5 8 3 6 3 U1 5 8 2 7 8,0.0 7 5 3 8 7 0 . 0 7 3 2 5 3 0. 0 7 5 1 3 90 _  26 3 5 3 7 0 . 2 6 4 7 6 1 0 . 2 5 5 3 7 80 . 0 8 0 1 1 8 0 . 0 7 7 5 8 8>? <0 . 0 7 9 4 0 70 . 2 2 5 3 0 4 0 . 2 1 2 0 4 5 0 . 2 2 4 2 1 9. 0 .  1 63 2 8 5 . . 0 . 1 7 5 3 8 8, . 0 .1 7 4 7 6 6 ,( 8 ) ( 9 ) ( 1 0 )图9Page Ran k 补偿后R a nk 值变化图由图9 可以看出第4 次迭代, 节点n od e l 出现故障后对节点B 、C 的Ra n k 值补偿为0 . 1 6 40 2 9 , 再次经过6 次迭代后得到的Ra n k 值与图8 的正确Ra n k 值比较接近, 且在补偿后迭代执行在第1 4 次时, 其Ra n k 值收敛精度达到1 (T 3,  Ra n k 值收敛为{ 0. 1 6 0 8 37 , 0 . 0 7 61 44 , 0 . 2 68 7 49 , 0 . 08 0 5 89 , 0. 2 2 6 78 5 ,0 ?  1 7 7 9 5 6 }丁.采用本文提出的乐观补偿函数对丢失的网页恢复并继续迭代得到的网页排名与无故障迭代计算得到的结果一致. Pa ge Ra nk 算法对应的补偿函数具体执行过程如算法1 所示.算法1 .Pa g eR a nk 全量迭代算法补偿函数.输人: 顶点集合V , 当前迭代变量输出: 对故障节点丢失数据补偿后的新迭代变量1.Su mRank—s unK i^ n) / /统计健康节点 Ran k值2.L os t N u m—c ou nt C VO— c ou nt C i?1 * 1) / /计算丢失的顶点数量3.C omp en sa t i on Ra n k <-( 1 —Su mR an k ) / Lo st Nu m4 ./ /对丢失顶点的Ra n k 值进行补偿5 .F ORe a c h 认i nV 7/ 遍历节点上的顶点6.如果未丢失7 .a d d广t o id / /直接加人到8 .e l se / / 如果丢失9.a d dC o mpe n s a t i o nR ankt o1 0 . / / 将丢失补偿后的R ank 加入到J ? :二4. 3 基于乐观容错机制的増量迭代算法本节主要基于分布式增量迭代算法实现基于补偿函数的乐观迭代容错机制, 使用典型的Co nn ec te d-Compo ne nt s增量迭代算法为例展开介绍. Con n ec t ed -Com pon e nt s 算法第3部分已经介绍;本节进一步基于Fli n k 系统实现了基于乐观容错机制的Conn e c te d-Com po nen t s 算法?本节以图1 0 所示的连通图为例, 以具体实例介绍了基于乐观容错机制的Co nn e ct ed Comp on e nt s算法的设计与实现.图1 0C on ne c t ed Co mp on ent s算法示例图假设当前共有I d 为1 ? 1 5 的1 5 个顶点组成的图. 如图7 所示为顶点之间的连通关系. 记顶点的分类值为Cl d , 初始时所有顶点的Ci d = I D.使用Co nn e ct e dComp o ne n ts 算法对图1 0 中的顶点数据进行迭代, 则每个顶点在迭代过程中对应的Ci d 值变化如图1 1 所示. 在经历第5 次迭代后,每个顶点的Ci d 值不再更新, 迭代结束. Con ne c t ed-Comp o n en t s算法属于增量迭代, 当某个顶点在本轮迭代过程中, 其Ci d 值没有发生变化, 代表该顶点的Cid 值已经是其所在的连通子图中所有顶点中的最小I d 值. 故在下次迭代时可以忽略该顶点. 在迭代过程中, 若集群中某节点生故障而导致部分数据郭文鹏等: 面向F l i n k 迭1 1 期 代计算 的 高效容错处理技 术 2 1 09丢失时, 使用补偿函数将丢失的顶点补偿顶点的初始值, 该节点周围的节点可能已收敛到最终的结果.故对于丢失的节点只需要经历较少的收敛次数即可再次得到最终收敛的结果.图1 1C o nn e c t ed C ompon e n t s迭代C i d值变化图以图1 1 为例, 假如在第3 次迭代时, 某台节点no d e2 发生故障, nod e2 上存放的顶点有3 , 6 , 9? 在发生故障后, 对丢失的数据进行补偿恢复, 得到新一轮迭代的输人. 继续执行迭代的过程如图1 2 所示.经过补偿后的顶点同在第5 次迭代收敛, 且结果一致.图1 2C o nn e c t ed C ompon e nt s 补偿后C i d 值变化图基于Co nn e c t e d C omp o n e nt s 的补偿函数的具体执行过程如算法2 所示.算法2 .C o n ne c t e dCo mpo ne n t s 增量迭代算法补偿函数.输人: 顶点集合V , 当前迭代变量C W< 4 >输出: 对故障节点丢失数据补偿后的新迭代变量cw =1 .F OR ea c h W,i nV/ /遍历节点上的顶点2 .i f t;,i n CWuV /如果未丢失3 . a d dCW :4 >t oC W= // 直接加人到4.el se/ /如果未丢失5. a d dt oC W= / / 直接加人到6./ /将丢失的顶点的I d 作为补偿值, 并加人本文基于F l i nk 系统实现了全量迭代算法的乐观补偿容错机制, 现有的分布式系统没有新增乐观容错机制的原因之一在于补偿函数需要完全由用户定义和实现. 本文实现的乐观补偿函数容错机制为用户提供了补偿函数接口, 该接口中定义了抽象的收集数据方法并将初始数据集作为参数传人该方法, 便于用户直接使用. 执行过程中发生故障时, 主节点J o b Ma na ge r 会通过心跳信息监测到具体发生故障的T a sk Ma n a ge r. 此时会判断用户是否编写了补偿函数, 如果有, 则会触发收集数据的操作, 在E x ec u t i o n G ra ph 中向分配了任务的健康节点发出收集数据的消息. Ta sk M a n a ge r 收到消息后, 会根据迭代任务的类型来收集数据, 如果是全量迭代则会在I t e ra t i o n l n t e r me d i a t eT a sk 中收集数据? 如果是增量迭代, 则会在其I t e r a t io n H e a dT a sk 中收集数据.数据收集完成后, 调用用户编写的补偿函数, 对丢失的数据进行恢复. 将恢复得到的数据作为新的迭代输人继续执行.5 基于头尾检查点的悲观容错机制如前所述, 现有分布式计算系统迭代容错效率低, 采用的悲观检查点机制时以阻塞的方式写人外部存储? 额外开销大, 没有针对迭代计算的特点制定特定的容错机制. 本节提出了一种基于头尾检查点的悲观容错机制, 该机制以一种不受阻塞的方式编写检查点, 将可变的数据集输人迭代数据流, 降低了检查点成本和故障恢复开销. 进一步基于F li n k 系统实现了头尾检查点机制. 本节首先介绍了F l i n k系统中的迭代模型. 其次介绍并分析了阻塞检查点和非阻塞检查点的代价开销. 最后提出了尾部检查点和头部检查点机制并进行了代价开销分析.5 . 1F l i nk 系统中的迭代模型本节以F l i nk 系统迭代处理图算法为例. 介绍了F li nk 系统的迭代模型. 对于顶点数据集,使用表示顶点W , 表示顶点的迭代变量值. 对于边数据集使用表示源顶点,表示目标顶点. 表示边的权重( 该值是可选的) . 通常对于图迭代计算问题,一般表示为顶2 1 1 0计算机学报2 0 2 0 年点为其它顶点生成消息, 并在每个超级步中接收消息更新其值. 使用关系运算符. 这类迭代计算表示为y( m )y ( V< - >) m E )( 9 )其中, 是当前顶点的值, E 是边. 首先顶点为其他顶点产生消息, 即M E . 然后, 顶点收集消息以及当前值U( W l x f:. 最后, 使用步函数/ 来更新顶点的值.图1 3 显示了数据流系统中图迭代的通用编程框架. 要在数据流系统中执行图算法, 输人数据常从外部存储( H DF S ) 加载以构建狀数据集, 而数据集由用户指定的初始值根据应用程序构建. 迭代运算符用于将新生成的顶点集Vaf e, 替换上一次迭代的顶点集这里将和Ve "e _r' 称为迭代数据集. 在j o in 阶段期间, £#e 和Ve rk i 数据集彼此连接以生成中间数据集, 即在顶点之间交换的信息. 这里连接运算符伴随用户自定义的函数以产生有效的值. 例如, 指定用户定义的连接函数, 使其与F l i n k 中的j o i n 运算符相关联, 而通过在S pa r k 中的joi n 之后应用ma p 函数来实现. 在gro up B y 阶段, 中间数据集由gr o u pB y 运算符应用,该运算符按目标顶点对数据进行分组以构造每个顶点的邻域. 在聚合阶段, 用户定义的聚合函数应用于Ve de x 数据集和其邻居数据集的并集, 以便计算正在处理的顶点的新值. 但是u ni on 运算符是可选的,因为在某些应用程序中, 顶点的值仅依赖于它的邻居. 其中J o i n 阶段对应了式( 1 ) 中的V^ ; >M £, Gro u p阶段对应了U( V( ") M E , Agg r eg a t i o n阶段对应了U ( V(; >) tx f:) .<w>/Vertex/_ /Ve rtex'//Jo i n阶律G r o upBy阶學\Ag g re ga tio n阶 段、'( Jo ij)-?/ 消息/ 邻居邻居+/?^r ega tioijj图1 3 图迭代处理通用编程框架通常, 迭代输人经过每个超级步的转换后, 得到的输出在迭代算法的执行过程期间作为下一个超级步的输人. 因此, 在下一轮迭代过程中, V〃^r' 数据集将替换原有的Ve rt ex , 替换过程通过反向通道来完成. 其中, 系统的迭代数据流的执行过程如图1 4 所示.反向通道操作符?{ 操作符}迭代头迭代尾图1 4 迭代数据流5 . 2阻塞检查点与非阻塞检查点在阻塞运算符模型[2 6] 中, 每个运算符在任何下游运算符开始使用结果之前生成其完整结果.该模型简化了检查点策略的实施, 并被Dr y a cP'Ma h o m 和P re g el i x 等系统广泛采用. 遵循此原则,为了编写检查点, 在开始下一个超级步之前保存迭代数据集. 在迭代数据流中, 检查点可以通过反向通道写入, 如图1 4 所示. 我们假设该集群中所有的节点工作均匀, 并且工作负载在所有节点之间完美平衡. 然后, 阻塞检查点的开销Q, 如下:D '〇i, =—( 1 0 )n v其中D '是在超级步i 结束之后且在超级步; +1 之前的检查点的数据大小m 是集群中节点的数量〇是每个节点使用的外部存储系统的写人速率.阻塞运算符模型极大简化了容错任务, 因为它可以防止下游任务消耗其上游输出的一部分数据而导致其余部分发生故障变得不可用的情况[ 2 ° ]. 但是此阻塞模型通常会增加执行延迟, 如例1 所示. 这种高延迟的原因是只有当迭代数据集完全可用时才会与入检查点, 并且在完成检查点后, 后续的超级步才可以启动计算.例1 . 假设图迭代处理算法在由1 〇个节点上组成的集群上运行. 另外, 迭代数据集的数据量即检查点的大小为1 0 G B , 并且每个节点上的H DF S 的写人速率是5 0 M B/ S. 根据式( 1 2 ) 可知,在阻塞运算符模型中写入检查点的额外开销是2 0 .  4 8 s . 如果一次迭代任务没有任何检查点的超级步的执行时间为2 mi n , 那么检查点额外开销所花费的占比为1 4 .6 % .F l i nk 系统实现的检查点容错机制, 虽然不会以无阻塞的方式破坏迭代管道. 但它忽略了迭代控制,并使系统设计复杂化, 需要额外的组件来协调故障恢复的检查点, 特别是对于迭代图算法. 此外, 节点上的磁盘故障是本地实现策略的灾难, 因为故障磁盘上的数据将完全丢失, 并且后向重新计算可能是耗时的.郭文鹏等: 面向Fli nk 迭1 1 期 代计 算的 高 效容错处理技术 2 1 1 15 . 3 尾部检查点与头部塞检查点本节提出的检查点机制, 通过在数据流执行过程中将检查点写人到外部存储, 与迭代无关的阻塞检查点不同, 该机制在数据流中, 可以感知迭代. 编写检查点将可变迭代数据集保存到外部存储是一项特俗任务, 该检查点的写入隐含地包含在流水线执行中. 它不仅在不破坏流水线任务的情况下继承了低延迟的优势, 而且只有在当前迭代中的检查点完成后, 迭代协调器才能启动下一次迭代, 此外,H D FS 等外部存储为容错提供了高可用和可靠性.对于尾部检查点, 如图1 5 ( a ) 所示, 检查点的写人与数据集的生成同步进行, 在超级步的尾部写人外部存储. 即超级步尾部数据流速为因为是以流水线的方式生成的. 如果产生的流速大于写人外部存储器的最高速率V ,即w> 切. 则可以在没有任何运行时间开销的情况下写人检查点. 否则, 数据被累积, 进程等待写人外部存储完全写入需要的开销为在此期nv ,D '7)间, 已写人的数据量为因此, 待写人的数据量n v ,为丄「D。。— 将剩余数据写人磁盘所nL」需的时间是额外的开销. 给定写人速率% 尾部检查点的开销OU 为O u b =\D , :、{ v t—v )nvv ,V <,Vt( 1 1 )v > v,例2 ? 在例1 的基础上, 如果用于生成Ve rt ex'数据集的流水线速率是6 0M B/ s . 则根据式( 1 1 ) 可以计算得, 尾部检查点的开销是3 . 4 1 s.对于头部检查点, 如图1 5 ( b ) 所示, 检查点的写入与Ve rteo? 数据集的完成同步进行. 由于Ve r f ex数据集由管道中的下游节点使用. 如果检查点的写人速率u 大于超级步头部的流水线速率% . 即则可以在没有任何运行时开销的情况下完成检查点的写人. 如果^< 叫, 则在消耗完整个Ve7^:r数据集之后还存在剩余数据, 剩余的数据量为D ', 写人该数据的开销为但是如果此时间小于超级步i 的正常执行时间〖,, 即, 则仍然没有运行时开销, 因为将数nvv h据写人外部存储和下游操作符的处理是并行完成的. 否则, 迭代协调器需要等待写人外部存储才能完成, 以便继续执行下一个超级步. 在这种情况下, 时间导致运行时开销. 然而, 需要考虑头部检查点的干扰次a <a,) , 这可能会延迟作业的运行时间, 因为它仍然占用计算或存储资源. 头部检查点的开销〇L 近似为nv vhn v vhl〇, 其他( 1 2 )反向通道操作符Y… 操作符下迭代头迭代尾( b ) 头部检查点图1 5 尾部检查点和头部检査点例3 显示了头部检查点将检查点写人操作和每个超级步骤的图形计算并行化, 以便显着减少检查点的运行时开销.例3 . 在例1 的基础上, 如果使用Ve da 数据集的流水线流的速率是6 0 MB / S , 则根据等式( 1 2 ) ,尾部检查点的开销是〇.根据前面对阻塞检查点和头尾检查点的代价分析, 我们可以推理出以下定理.定理1 . 无阻塞检查点的开销不高于阻塞检查点的开销.证明. 分别对比尾部检查点和阻塞检查点, 头部检查点和阻塞检查点的开销. 尾部检查点与阻塞检查点开销对比: 如果” < % , 那么^^< 1 , 因此V ,(X,=D:’二( 巧―并且 〇,, 〉〇. 因此〇u <nvvtn v当时, ? 头部检查点与阻塞检查n ( , )点对比: 如果K"> ?,_ 次, 那么,=n v v/,D ( , ) i vh _ v )n vv h-Zi +di <^ UL^)<D^=a _此外n v v/,nv〇':?= 〇并且〇? >〇, 因此2 1 1 2 计算机学报 2 0 2 0 年综上所述, 由和0 ^ < Q, 可知, 阻塞检查点模型开销高于非阻塞检查点.定理2 . 若超级步简化为恒定速率的管道, 即叫=% , 则头部检查点开销不高于尾部检查点.n ( / ) ( 7 1 _7 , ^证明. 如果1; <叫且一vA那么〇丨: ?=nv vhD u\ vh—y )^+ 汐^. D( , > ( v,—y )n vvh''nv v,〇L ? . 否则, d=〇并且 〇u > 〇. 因此 〇K〇:,? .定理1 表明流水线数据流系统应采用无阻塞模型来保存迭代数据集以进行图形处理. 定理2 表明,在超级步的头部检查用于图处理的迭代数据集可能导致低开销. 在某些情况下, 头部检查点没有开销( 如例2 和例3 ) , 而尾部检查点会产生显着的成本.6 实验分析对于本文提出的两种容错机制, 在Fli n k 系统上进行了实现, 通过修改M in k 底层源码, 提供了用户可以直接使用的补偿函数接口和可设置的头尾检查点参数. 通过在源码中增加一些k i l l 计算节点的方法, 模拟了计算节点出现故障. 使用优化的容错机制与Fli n k 系统原有的容错机制在故障发生后任务恢复耗费的的迭代次数和时间进行了对比与分析, 分别采用全量迭代P ag e Ra nk 算法和增量迭代C on n ec te dCo mp on en t s 算法在不同规模的数据集上进行了实验.6 . 1 数据集本文针对Pa g eRa n k 算法和Comp on e nt s 算法采用了两类数据集. 分别是真实数据集和模拟数据集, 真实数据集g e ms ec- F a c e boo k 是斯坦福大学2 0 1 7 年1 1 月收集的有关Fa c eBo ok 页面的数据;wi k i-t o pc a t s 是斯坦福大学2 0 1 1 年9 月收集的维基百科的超链接网络图; Ho l l i n s 数据集是霍林斯大学教育网的网页链接关系数据; a s- Sk i t t er 数据集为In t er ne t 拓扑, 包含h t tp : / / w ww . c ai d a . o rg / t ool s /m ea s ur em en t / sk i t t e r 网站2 0 0 5 年每天运行的网页链接关系. ci t-P a t em s 数据集为国家经济研究局维护的美国专利数据集, 涵盖了1 9 6 3 年至1 9 9 9 年的专利及引用数据. we b- Googl e 数据集为谷歌网页数据.真实数据集主要用于全量迭代P ag e Ra n k 算法实验分析. 模拟数据集d a t a s et l- 3 是在实验时随机生成的具有较多连通分量的图数据集. 其主要用于Co n ne c te dCom po ne n t s 算法, 因为在执行该算法时,收敛较快, 故随机生成了规模较大的连通图数据集.详细信息如表1 所示.表1 实验环境配置配置 参数机器节点数量 1 主节点, 6 从节点内存 32 G B X 6操作系统 Cen tOs 7JD K 版本 1. 8 . 0_ 1 9 1开发环境 I n te l li J I DEAFli n k 版本 1 . 4 . 2H a d oo p 版本 2 . 7 . 36. 2 实验环境设置本文采用的全量迭代算法Pa g eRa n k 和增量迭代算法Co mp on e nt s 基于F li nk l. 4 .2 实现, 本文对底层源码进行了修改, 新增了迭代任务的乐观恢复容错功能. 并采用jav a 语言编写具有乐观恢复容错机制的Pa ge Ra nk 算法和Co mpo ne n t s 算法的案例与未优化的H in k 进行了实验对比. 实验分析的环境设置和使用的数据集如表1 和表2 所示.表2 数据集数据集 N o d es Ed ge sg em sec-Fa ce b o o k-2 8- 5 0 5 1 5 8 1 9 30 6w iki-t o p ca t s129-1 7 9 1 4 8 9 28 5 1 1 80 7Ho l l i n s:3 0] 6 0 1 2 2 3 8 7 5a s- Ski t te r -3 1 -1 6 9 6 4 1 5 1 1 0 9 5 2 9 8ci t- P a t en ts-] 2 」37 74 7 68 1 6 5 1 8 9 4 8w eb - Go og l eL S 3] 87 5 7 1 3 5 1 0 5 0 3 9d at ase t-1 2 02 0 4 0 0 0 0d at ase t-2 5 0 0 1 2 2 5 0 0 0 1 2 1d at a s e t- 3 1 0 0 0 0 0 0 0 1 2 0 0 0 0 0 06 . 3 实验结果与分析本文通过修改F l in k l . 4 .  2 的源码, 新增了补偿函数接口. 新增参数来设置在指定的迭代次数k i l l节点, 模拟故障的发生. 乐观容错机制与F l i nk l . 4 . 2原有的重启恢复容错机制在正确性、运行时间、故障发生后恢复所用的迭代次数上进行了分析. 在不同规模的数据集上展示的实验效果表明, 网络中顶点之间的边数越多, 对于全量迭代算法来说, 收敛速度越慢. 对于全量迭代算法来说, 收敛速度越快.( 1 ) 正确性评估基于乐观容错机制全量迭代算法Pa ge Ra n k 通过使用表1 中的小数据集( H ol l i n s ) 和大数据集( w i ki-t op c a t s ) 在分布式集群上运行? Pa ge Ra n k 算法迭代收敛的阈值? 取V ( 1 〇〇X A〇的小数单位, J V为网页总数. 在所有实验中, 模拟故障发生时丢失的节点上的数据量为1 / 2 0 . 为了充分验证算法的正确1 1 期 郭文鹏等: 面向F li n k 迭代计笕的高效容错处理技术 2 1 1 351 02 03 04 0发生故障时的迭代进度( c ) wiki-top ca ts ( 总迭代次数6 4 )图1 7Pa ge Ra n k 算法恢复迭代次数比较1 02 03 04 0发生故障时的迭代进度( b ) fac eb oo k  ar t ist( 总迭代次数5 0 )9 39 21 0 2 03 04 0迭代乐观恢复机制的正确性50( b ) wi ki- to p cat s图1 6 迭代乐观复制机制的正确性图1 6 ( a ) 为小型数据集H o l l in s 的实验效果,图1 6 ( b ) 为大型数据集w i ki- t o pc a t s 的实验效果. 基于乐观容错机制的C o n ne ct e dC om p on e nt s 增量迭代算法的乐观恢复在发生故障时, 补偿恢复得到的结果和正常迭代得到的最终结果完全一致. 由图1 6可以得出, 由于P ag eR a n k 算法得到的最终结果是近似值, 故对于P ag e Ra n k 算法实验的结果和原执行结果在同一收敛度且结果相差不超过5 % , 可以认为两种结果均正确. 连通分量算法则完全保证了一致性结果即正确率为1 0 0 % . 因此, 补偿函数得到的最终结果是正确的. 此外, 通过使用不同规模的数据集进行实验, 发现对于网络顶点数量较多的顶点,性( 和正常迭代结果的重复率), 对不同数据集的总迭代次数( Ho l l i ns :1 42次, w i ki-to pca t s : 6 4次) 按不同的迭代间隔触发节点s i 发生故障, 并采用乐观的容错机制进行恢复. 将得到的最终结果与正常迭代的结果进行对比, 由于Pa ge Ra n k 算法结果本身就是近似值, 故两次迭代排名误差小于1 0 的网页认为排名正确. 小数据集结果的正确性和大数据集的正确性分别如图1 6 所示.921 02 04 08 0迭代乐观恢复机制的正确性( a ) Ho l l i n s1 20收敛速度越快.( 2 ) 恢复性能评估基于乐观容错机制全量迭代算法Pa ge R a nk 和增量迭代算法Co nn ec t ed Co mp on e nt s 算法在模拟故障发生时, 恢复任务需要继续迭代至收敛. 依然采用正确性评估中的实验条件, 使用表2 的真实数据数据集和模拟数据集进行实验, 针对不同规模数据集的迭代次数可以观察出优化后的F l i n k 恢复后执行的迭代次数均少于F li nk 原有的迭代次数. 基于补偿函数的乐观容错机制在Pa g eR a nk 算法和C o n ne c t e dC om p o ne n t s 算法上的迭代次数提升效果分别如图1 7 和图1 8 所示. 实验结果表明, 在迭代次数上, 乐观容错机制故障恢复后比原有的F l i n k 容L 0 09 99 8i1 02 03 0发生故障时的迭代进度( aHa ceb oo k  at h le tes ( 总迭代次数4 6 )40| B 优化后的Flin k S 未优化的|H 优化后的Fli n k S 未优化的F li n k|0 P ag eRan k 算法结果正确_NCon n e cted Co mpo n en t s算法正确率0Pa g eRan k 结果正确率SCo n n ec ted  co mpo n en t s结果正确率IK IK II1IIooooo54321^名^ 3劫『>1512鉍^1%/齋蓉31086099%/#蓉HI>型S2?w^l<//////?///?§§§§§§888sssssssss808s§§§§§§§§§§§§§§§00§§§§1 03 05 0709 01 0 0发生故障时的迭代进度( a ) d a taset 1 ( 总迭代次数1 0 1 )表3 和表4 分别列举了乐观迭代容错优机制和悲观迭代容错优化机制的具体实验条件以及提升的百分比. 基于头尾检查点的容错机制在故障发生的不同阶段时间开销不同. 此外, 不同的硬件环境下,〇1 02 03 040发生故障时的迭代进度( c ) wi k卜to pc ats( 总迭代次数6 4 )图1 9P a ge Ra nk 算法运行时间比较51 02 03 04 0发生故障时的迭代进度( b )f ace b oo k_art ist ( 总迭代次数50 )7 001 0 3 0507 09 0发生故障时的迭代进度1 0 0( c )d ata set 3 总迭代次数(1 9 3 )图1 8Pa g e R a n k 算法恢复迭代次数比较( 3 ) 迭代恢复时间评估分布式迭代计算的运行时间是影响计算效率的关键. 现实世界中的分布式集群出现的故障时间是无法精确预估的. 为了保证实验的完整性, 实验假定故障在总的迭代次数执行一半时发生故障. 使用P a g eR a nk算法和C o n ne c t e dC om po ne n t s算法对大规模数据集进行了实验分析, 如图1 9 和图2 0 分别°51 02 03 040发生故障时的迭代进度( a ) f aceb o o k_a th l et es( 总迭代次数4 6 )60 001 03 05 07 09 01 0 0发生故障时的迭代进度( b ) da ta 2 ( 总迭代次数1 2 1 )为不同数据集下的实验效果. 图2 1 和图2 2 综合对比了不同数据集下的全量迭代和增量迭代使用乐观容错机制提升的效率. 实验效果表明, 在运行时间上, 基于乐观的容错机制比F li nk 原有的容错机制在全量迭代上平均提升了1 6 .  8 1 % , 在增量迭代平均提升了2 4 . 2 % .6 0 0错机制在全量迭代上平均节省了3 5 . 8 7 % , 在增量迭代上随迭代进度呈线性提升. 在不同规模的数据集上验证了乐观容错恢复机制补偿后的快速的收敛恢复速度.1 0 0|B 优化后的Fli n kS 未优化的Flink  |mi l i i丨H 优化后的Fli nk S 未优化的Fli n k |1优化后的F l i n k S 未优化的F l i n k |2 1 1 4 计算机学 报 2 0 2 0 年oooo8642O I&O I6540 00 00 0oooooo852963w^^ l细S1 15㈣峯oooIoooo5432oooooo208642oooooooooo54321S/RI忘妇胡//////////fff/f//////?.f/////////AXNVSXNXWCSNXVWNNXNWVNXV^sssssssssss\\ssss>郭文鹏等: 面向Fl i n k 迭代汁算的高效容错处理技术 2 1 1 51 03 05 0709 01 0 0迭代故障进度丨冬1 2 2 增W 迭代不N 数据集下提升的效率1 0 0a s- S k it te rw i ki-to p ca ts数据集( a ) Pag eRan k 检查点时间对比1 02 030迭代故障进度4 0图2 1 全M 迭代不同数据集下提升的效率3 5501 03 0507 0901 0 0发生故障时的迭代进度( c ) d at as et3 ( 总迭代次数3 75 )图2 0C orme c t e d Co mpo n en t 算法运行时间比较检查点的写人速率和效率也会有影响. 为了尽量避免该影响, 实验以迭代次数V^"( 其中《为总迭代次数) 为间隔使用Co nn ec t ed Co mp o n en t s 算法和P ag e Ra n k算法在数据i-top ca t s 和a s- S k i t t er 上进行实验. 其中运行时间分别如图2 3 所示. 实验效果表明, 尾部检查点的平均时间开销在全量和迭代和增量迭代上均优于现有的阻塞检查点, 平均节省开销分别为1 3 .  8 2 % 和1 0 . 8 7 % . 面向迭代任务的尾部检查点的容错效率高于头部检查点.( a ) d a tas etl ( 总迭代次数1 0 1 )1 0305 07 0901 0 0发生故障时的迭代进度( b ) d a t ase t2 ( 总迭代次数34 3 )3 5 03 0 0r) ()3 5 03 0 0数据集( b ) Co n nect edCompo n e n ts检查点时间对比图2 3 不同检查点容错机制运行时间对比—?- 优化后的Fl i nk? 未优化的Fl i n k? da ta s et 1d a ta se t2d a ta s et 3??? \ w,1 1 期o lo lo lo l76540 0050322%/嫌較电蜞叵宏5 02 0 15 00 0vtalfefcl sooooo50505221.—-ooooo0505032211vRlfe^lF2 296次/t l较2 1 1 6 计算机学报 2 0 2 0 年表3 乐观容错机制实验条件及性能优化对比( a ) Pa ge Ra n k 算法执行时间对比we b- G o o gl e so c-LJ总迭代次数 6 4 5 8EPS I L ON 0 . 0 0 0 0 0 0 0 1 0 . 00 0 0 0 0 0 0 1Pa g e s 8 7 5 7 1 3 4 8 4 7 5 7 1Li n k s 51 0 5 0 3 9 6 8 9 9 3 7 7 3模拟故障 第3 2 次 第2 9 次未优化时间 3 6 5 s 1 8 6 7 s优化后时间 3 4 3 s 1 7 6 4 s提升百分比 5 . 7 5 % 5 . 5 2 %( b )Co n n e ct ed Co m po n en t s 算法执行时间对比d a t as e t l d a ta s e t 2 so c- LJ总迭代次数 1 0 1 1 2 1 1 2Ve r te x 2 0 2 0 50 0 1 2 2 4 8 4 7 5 7 1Ed ge 4 0 0 0 0 5 0 0 0 1 2 1 68 9 9 3 77 3模拟故障 第5 0 次 第6 0 次 第6 次未优化时间 I l l s 1 6 4 s 3 0 1 s优化后时间 1 3 6 s 1 3 8 s 2 6 6 s提升百分比 2 2 . 5 2 % 1 5 . 8 5 % 1 1 . 63 %表4 悲观容错机制实验条件及开销对比( a >Pa geR a n k 算法检查点所占开销sc- S k i tt e r w i k i-t o p ca ts正常时间 2 9 2 s 4 3 4 s头检查点 3 4 0 s 5 2 6 s尾检查点 3 2 7 s 5 0 3 s阻塞检查点 3 9 3s 6 9 7 s头检查点开销 1 6. 4 % 2 1 . 2 %尾检查点开销 1 1 . 9 % 1 5 . 8 %阻塞检查点 3 4. 6 % 3 7 . 7 ^头尾平均容错 1 4. 2 % 1 8 . 5 %( b ) Co nnec t ed  Com p o n e n ts 算法检査点所占开销d a ta l d a t a 2正常时间 1 1 2 s 1 3 8 s头检查点 1 2 4 s 1 5 3 s尾检査点 1 1 5 s 1 4 0 s阻塞检査 1 3 3 s 1 6 5 s头检査点开销 9 . 6 % 1 0.  9 %尾检査点开销 2 . 7 % 1 . 4 %阻塞检査点 1 8 . 8 % 1 9.  6 %7 总结本文提出了面向大规模迭代计算的乐观容错机制和悲观容错机制. 与现有的大数据计算平台的容错机制不同, 乐观容错机制只在故障发生时进行补偿恢复, 减少了不必要的容错代价和开销, 在故障率较低的情况下, 提拱了高效的处理性能. 悲观容错机制主要采用迭代数据流任务的特点, 将检查点注入迭代数据流中, 无需阻塞操作, 以较低的开销保证了迭代任务的正确执行. 大量的实验表明, 在处理大规模的迭代计算时, 乐观恢复的容错机制随迭代规模的增大和迭代进度的推移节省的迭代次数越多, 全量迭代运行时间平均提升3 5 . 8 7 % . 增量迭代随迭代进度呈线性提升. 在迭代中期出现故障时, 全量迭代运行时间平均提升1 6 . 8 1 % . 增量迭代平均运行时间提升2 4 . 2 % . 头尾检查点容错机制虽然与不同的硬件环境和网络带宽有关, 但其总体代价开销在不同情况下均小于阻塞检査点. 尾部检査点面向增量迭代任务平均节省的时间代价开销为1 3 . 8 2 % ,面向全量迭代任务平均提升1 0 . 8 7 % . 由于受网络带宽和外部设备的影响, 悲观的容错机制误差较较大, 但尾部检査点和头部检査点的代价开销均小于阻塞检査点. 后期将会采取某种技术手段, 调整网络带宽并结合磁盘是否空闲来减少外界条件不同引人的误差. 目前的补偿函数迭代次数优化的比例通常高于迭代时间优化的比例, 可能的原因是补偿函数数据收集完成之后没有释放中间数据的内存, 导致之后的迭代时间优化效率偏低. 下一步将针对现有的内存消耗型补偿算法进行优化.参考文献[ 1 ]Z ha n gY ? Ga oQ ? Gao L ? et al. iMa p Re d u ce : A d i s t r i b u t edcom p u ti n g f rame wo r k fo r it e r ativ ecomp u t a tion .Jo u r na l o fG r id Com p u ti n g , 20 1 2 , 1 0 ( 1 ) : 4 7-6 8[ 2 ] Mass u cci FA ?Doca mpo D .Mea s u ri ngt hea ca de mic r ep ut at i onthr ou g h ci ta tio n net wo r ks vi a PageR ank . Jo u rnalo f I nfo rmet ri cs,2 0 1 9 , 1 3 ( 1 ) : 1 8 5 - 2 0 1[3 ] Have l iw al a T H. To p i c - sen sitive PageRank: A con t ext-sen sitivera n ki n g a l g o r i t hm fo r we bs ea r c h.I EEET ra nsa c t i o ns o nK n o w l ed g e a n d Da t aEng i ne er i ng * 2 0 0 3 ? 1 5 ( 4 ) : 7 8 4 - 7 96[4]Go n z a l ez Sa nch e zR .Mea su r e me n t san d a na l y si s o f o n l i n es o c i al n e t wo r k s . Mat e r i al s T r a n s a cti o n s J IM , 2 0 1 4, 2 1 ( 3 ) :1 5 9 -1 68[ 5 ] Li  J R ? Ch e nL, W an gS P , e t al . Aco mp u ta tio na l met ho du s i n gt h e  r an d omw al kw it hr es t ar t a lg o r it hm f o r i d e n ti f y i n gn o v e l e p i g en e t i c f ac to rs .Mo l e cu l a r G en e ti csa n d Gen om i cs ?2 0 1 8,2 9 3 ( 1 ) :2 9 3 - 3 0 1[6 ]Ad e wo l eKS ? An u a rN B , K am si n A . Ma l i ci o u s  ac c o u nt s:Dar k  o f th e so cia l n et wo r ks.J o u rn a l o f N et w o rkComp u te rAp p l i cat i o n s , 2 0 1 7 , 7 9 ( 1 ): 4 1- 6 7[7 ]S hu Ka i , W an g  Su - Ha ng , Ta n g J i-Lia n g , e t al . Us er i d en t i t yl inkag e acr o ss o n l i ne  so ci al  net wo rks: A  re vi ew. ACMS IG KDDExp l o r a t i o n s Ne wsl e t te r , 20 1 7 , 1 8 ( 2 ): 5 -1 7[8 ]Xu C , Ho l z e me rM , K a u l M , a nd Mar k l V.Ef f i cie n tf a u l t-to l er an ce fo r i t er a t i v egr a p h p r oc es s in g o n d i stri b u t ed d at a flo wsy st ems/ / Pr o ceedi ng s  of t he IEEE3 2 n d In t er na tio n al Co nf er e nceDa ta E n g i n ee r i n g . He l s i n ki, Fi n l an d , 2 0 1 6 :6 1 3-6 2 4[ 9 ]Pe ngW , L iM, C h en  L , et a l . P r edic tin g  p r o teinf u n ctio nsb y u s i n gu n b al a n ced  r and o m wa l k  al g o r it hm on th re e b i ol o gi ca lnet wo r ks . IE EE / AC M Tr a ns a ctio n so n Comp u ta ti o nal  Bi o l o g yand Bioi n fo rm ati cs , 2 0 1 7 * 1 4 ( 2 ) : 3 6 0 -36 9郭文鹏等: 面向Fl i n k 迭1 1 期 代计 算的 高 效 容错处 理技术 2 1 1 7[ 1 0] Yu  J i e - G e n g . Yi n g Li n , Y anMa , e t  al. I n t er ac t i ve v is u a l i z a t i ono f DG A d a t a b a sed  o n mu l t i p l e vi ew s. J ou r n a l o f P h y si c sCo n fe r e n ce * 2 0 1 7, 7 8 7 ( 1 ) : 0 1 2 0 0 1[ 1 1 ]W a n gQi a n , Wa n gJ u n- Bo . I mp r ov ed co l l a bo ra t iv e f i l t e r i n gr e com men d atio n  al g o r it h m. Co mp u t e r Sc i en c e , 2 0 1 0 ,  3 7 ( 6 ) :2 2 6 - 2 2 8 ( i nCh i nes e )( 王茜, 王均波.一种改进的协同过滤推荐算法. 计算机科学, 2 0 1 0,  3 7 ( 6 ) : 2 2 6- 2 2 8 )[1 2]J e ong Y J , L e eJ , M oo n J , e t a l . K- Mea n sd a t a cl us t erin gw it h m emr i s to rn e t w o r k s .Na n oL e t t e r s *20 1 8 ,1 8 ( 7 ) :4 4 4 7 - 44 5 3[ 1 3 ]Dit t ric hJ? Qu ia ne- R u i z  J A. E ffici e n t bi g  da t ap ro ce s si n gi nH a d o o p Ma p R ed u ce. P r o ce ed i n g s o f t h eV LD BE n d ow me n t,2 0 1 2 ,5 ( 1 2 ) : 2 0 1 4- 2 0 1 5[ 1 4]Za h a r i a M , Xi n RS . We n d e l l P .e t al. A pa ch es p ar k :Au ni f i ed e n g i n e f or b i g da t a p r o c es s i ng . Com mu n i c a t i o n so f t h eAC M , 2 0 1 6 , 5 9 ( 1 1 ) : 5 6-6 5[ 1 5 ] Ca r b o n e P , K a ts i f o d i mo sA ,E we n  S ,e t  a l .Ap a c h e fl i nk :S t rea ma n d b a t c h p r o ce ss in g i n  as i n g l ee n gi n e . B u l l e ti n  o ft h e  I E EE Co mp u t e rSo c i et y T e ch n i c a lCo m mit t ee o n Da t aE n g i n ee ring , 2 0 1 5 , 3 6 ( 4 ) :  2 8-3 8[ 1 6 ]Sc he r b a u m J, N o v o t ny M , Va y da O .S p l i n e :  Sp a r k l i n ea g e ,n o t o n l y f o r t h e b an ki ng  i n d u s t r y / / P ro ce ed i n g s o f t h e IE EEI n t e r n a tio n a lCo n f er e n ce o n Bi g Da t a an dS ma r tC om p u ti n g( Bi gCo m p ) . Sh a n g h a i . Ch i na *  2 0 1 8 : 4 9 5- 4 9 8[ 1 7 ]K ie h n A , Ag g ar wa l D.A st u d y o fm u t a b l ec h e c k p oin iin ga ndr e la te da l g o r it hm s. S ci e n c eo f Com p u t e r P ro g r a mmi n g .2 0 1 8 , 1 6 0 ( 1 ):7 8 - 9 2[ 1 8 ]We n M ei.L i Ho n g- L i a n g .Re se a r ch a n d p r a ct i ce o f t h er o l l-f o r w a rd r e cov e r y te ch n i q u e i n  d i s t r i b u te d a n d r ea l-t i mes y s te ms .Co m p u te r En g i n ee ri n g 8^ - Sc i en c e ? 1 9 99 ,2 1 ( 5 ) :2 8- 3 1 ( i nC h i n ese )( 文梅, 李宏亮. 分布式实时系统中前向恢复技术的研究与实践. 计算机工程与科学, 1 9 9 9 ,  2 1 ( 5 ) : 2 8 - 3 1 )[ 1 9 ]De an  J? G h e mawa t S. M a p R ed u ce : Si mp lif i e d d a t a p r oc es si n go nl a rg e cl u st e r s. I n OS DI ,  20 0 4: 1 3 7-1 5 0[ 2 0]Zhou J i a n g . Wan gWei- Pi n g . Men g Dan, et al .K ey Tec h n ol o gyi ndi s t r ib u t e d fil e sy s t e m t ow a r d s bigd a ta a n a l y si s. J o u r n a lof  Comp u te r Re s ea r ch a n d De v el op men t, 2 0 1 4, 5 1 ( 2 ) : 3 8 2 -3 94 ( i n C h i n es e)( 周江, 王伟平. 孟丹等. 面向大数据分析的分布式文件系统关键技术. 计箅机研究与发展, 2 0 1 4 , 5 1( 2 ) :  38 2 -3 9 4 )[ 2 1 ] Ewen S , Tzo u ma sK . Ka u fman n M, e t a l. Sp in n in gf as t it e ra tived a t a f l ow s. P ro c ee d i n g s o f t h e VLD BEn d ow me n t ,2 0 1 2 ,5 ( 1 1 ) :1 2 6 8 -1 2 7 9GU OWe n -P eng , M. S.c a n d i da t e .Hi s majo r re s e a rchint e r e s t is b i g da t a .[2 2 ]D u d o l ad o v  S , X uC , Sc h el te r  S ,eta l. Op ti mi s ti cr ec o v er yfo r it e ra ti v e d a t a f l ow si n ac ti o n/ / P r o c eedi n g s o f t h eA CMSI GMO DI n t e rna t i o n al C o n f er e n c eo nMa n ag em ent  o f Da t a.Me l b ou r n e , Vi ct o r i a , Au s t r a l i a , 2 0 1 5 : 1 4 3 9 -1 4 4 3[ 2 3 ]Ek a n a y a k e J . LiH . Z h a n g B . et  a l .T w i s t er : A r u n t i m e fori t er a t i v eMa p R ed uc e/ / P r oc ee d i n g s o f t h e A CMI n te r n a t i o na lS ymp o s i u m on H i g h Pe rfo rma nce Dis t r ib u t e dCom p u ti n g.C h i ca go . I l l i n oi s,2 0 1 0 :  8 1 0 - 8 1 8[ 2 4 ] BuY , H o we B , Ba l a zi n s k aM , e ta l .H a Lo o p :E ff i ci e n tit e r a ti ve  d a t a p r o ce ss i n g o n  l a rg e cl u s t e r s. P ro c ee din g s o ft heV L DBE n d ow m en t ,  20 1 0 , 3 ( 1- 2 ) :2 8 5 - 2 9 6[ 2 5 ]U p ad hy a ya P . K w o n YC , Ba l a z i n s k aM .A l at e n cy a n df a u l t-to l er a n c eo p t i mi ze rfo ro n l i n e p a r a l l e l qu e r yp l a n s/ /P r o ce e d i n gs  o f  t h e AC MS IG MOD I n t e r n a tio na lCo n fe r e nceon Ma n a g em en t o f Da ta . 20 1 1 :2 4 1-2 5 2[ 2 6 ]Al e x a n d r o v A , Be r g ma n n R ,  Ew en S , e t a l .T he s t r a t o ?s p h e r ep la t f o rmfo rb ig d a ta an al y ti cs.T h eI nt e r n a ti o n a lJ o u r n a lo n  Ve ry L a r g eD at a Ba s e s , 2 0 1 4 , 2 3 ( 6 ) : 9 3 9-9 64[ 2 7 ]Benjam i n AS *Di a zMM , La u r a E , e t al .Te s t sof t h eDR YAD t h eo ry  o ft h e ag e-r e la t ed de fic it i nme mory  for co n l ex t:N o t a bo u tc o nt e x t ?a n d n o ta b ou t a g i n g . Ps y ch o l og y&-A g i n g , 2 0 1 2 ,  2 7 ( 2 ) : 4 1 8- 4 2 8[2 8 ]Li Z , N i eF , C h a ngX , e ta l .R an k -c on s t r a i n eds pe c tr a lcl u s t er i n gw it hfl e x i b l e emb ed d i ng .I EE ET r a nsa c t i o n so nN e u r a lN e t wo r k sa n d L ea r n i n g Sy s t em s ?2 0 1 8 ,2 9 ( 1 2 ) :60 7 3-6 0 8 2[ 2 9 ]Y i nH , B e n s o n A R , Les k o v ec J , et a l . Lo c a lh i g h e r- o r d erg r a ph c l us t e r i n g/ / P r o ce edi n gs o f  t h eACM SI GK D D In t er n a?t i o n al Co n fe r e n c e o n  Kn o wl e d g eD i s c ov e ry a n d Da t aMi n i n g.Ha l i fa x ,C an a d a , 2 0 1 7 :5 5 5 - 5 6 4[ 3 0 ]Di e fe n d e r fe r  CL ? Do a n RA , Sa l o w e y C.T h e q u a n t i t a t i vere a s o n i ngp r o gr a matH o l l i n s Un i v e r si ty .Pe er Rev i ew,2 0 0 4 , 6 ( 4 ) :  1 3[ 3 1 ] Les k o v ec J . K l e i n b e r g J , Fa l o u t s o s C.Gr a p hso v er t i me :D en s i f i ca tio nl a w s ,s h r i n k i n gd i a met e r sa n dp o s si b l ee xp l ana ti o ns / / Pr oc ee d i ng sof t h eEl e v en t hACMSI G K D DI n te r n a ti o na l Co n f e r en c eo nK n owl e d g eD i sc ov er yi n Da taMi n i n g. Ch i cago , US A ,  2 0 0 5 : 1 7 7 -1 8 7[ 3 2 ]Le s ko v ec  J ,Lan g KJ ,Da sg u p ta A , e t al .C omm u n i t ys t r u ct u re i n l a r g e ne tw o r k s: N a t u ra l cl u st e rsi z es a n dt h ea b s en c eo f  l a rg e we l l-d e fi n ed  cl u st e r s . I n t e r n e tMa t h ema ti cs ,2 0 0 9 , 6 ( 1) : 2 9-1 2 3[ 3 3 ]Ce n t o l aD .T h e s o c i a lo r i g i n so f n e t wo rk s a nd d iff u s io n.A m er i c an  Jo u r na l o f So c io l o gy , 2 0 1 5 , 1 2 0 ( 5 ) : 1 2 9 5-1 3 3 8Z HA O Y u - Ha i . P h . D., p ro fe s s o r.Hi smaj o rr e s e a rc hi n t e re s t  i s da t a m i n i ng.WA N G Gu o - Re n . Ph. D. ,p ro fe ss or .H i sm aj or re s ea r c hi n t e re s t  is da t a ba s e.WEI L iu - G uo ,M. S. c andi d a t e. H ismai n re se a rc h i n t e re sti s b i gd a ta.2 1 1 8 计算机学报 2 0 2 0 年Backgro undDi s t ri bu t e d i t e ra t i ve c ompu t i n giso ne o f t h e ma in s t re amt e c hno l o gi e si n t h e fi e l d o f b i g d a t a p ro c e ss in g a n d an aly s i s.Th e f au l t t o le ra n c e me ch a n is misa ne c e s sa r yg u a ra nt e e f o rh ig h ava il a b ili t y of  di st r i b ut e d s y st ems .Alt h ou g h th e f a u l tt ol e ranc e me c ha ni sm of  e x i s t i n gd i s t r i b ut e d sy s t ems p e r fo rmswe l li n hi g ha v ail a b i lit y ,iti gn o re st h e pr ob l emoff a u ltto le ranc ee ff i ci enc y fo ri t er a t i v e compu ti n g. The  newg e ne ra ti o nof b i g d a t a co mp u t i ng sy s t emA pa c he F li n k ma i n l y us e st h e“d i s t ri b ut e ds na p s ho t” c h e c kp o i n tme c h a n i smto p e r for mf a u lt t o l e ra nc e wh e np e rf or mi n gs t re amp roc e s s i n gt a s k s. Fo ri t e ra t i ve a n a l ys i s of ma s si ve  da t a ?  c he c kpoi n t s a dd un n ec e ss a r yde l a y.W h e ne xe c u t i n ga ba t c h pro c e ss i ng t a sk ,wh e nt h eco mp ut i ng n od e f a i l s a ndt h e t a sk  fa i ls,t h e t a sk i s e xe c u t e df romt he b e ginn i ngt o c omplet e th e f a ult  to l e ran c e. Th is fa ultt o le ran c e me t ho d br i n gs a l ot o f  ov e rhe a d .Bas ed on t he  c ha r ac t e ri s ti c s o f F l in k,s a r ch i te ct ur e an dit e ra t iv e pro ce s sing ,thi s pa p e rp ropos e san o p timis ticite ra ti v ef a u lt t ol e ran c e me c han i sm ba s e d on c omp e ns a t i o nf u nc t i o n sanda  p es si mi s t i c i t e ra t i ve f au lt  t ol e ranc eme c ha n i s mb as e d o nh ea d-t o- e nd c h e c k poi nt s, wh i c h re d uc e s fa ul t re c o ve ry ti mea nd f a ult t ole ra n c e ove r he a d and imp rove s i t e ra t i ve c a lc u la ti o ne f f e c t i ve ne s s .T h ee x p e ri me nt a lr es u lt s  pro ve t h ee f f i c i en c yof t h e i t e ra t i v e f a u l t-t o l e r a n t o p timiz a ti on t e c h ni qu e pr op os e di n t h i s p a pe r.Th i sw or k wa s s up po r t ed  by t he Na t i o na l K ey Re se a r c ha nd De ve l opme n tPr og ram of C hi na ( 2 0 1 8 Y FB 1 0 0 4 4 02 )an dt h eGene ra lP rog ramoft h eNa ti on a lN a t ur alSc i e n c eFo un da tion  of Ch i na ( 6 1 7 7 2 1 2 4 ) .

[返回]
上一篇:面向轨交控制软件需求模型的量纲分析方法
下一篇:理性公平的秘密共享方案_刘海