曹 禹,李晓辉,刘忠麟,贾 贺,费志伟
(华北计算技术研究所基础五部,北京100083)
通过对海量数据的挖掘与分析处理,能够帮助企业、政府以及学术机构洞察更多的信息来辅助决策与研究。随着大数据分析处理需求日益复杂,仅通过单独执行的独立任务或由crontab等定时执行工具执行的简单任务流程,往往难以满足其复杂性需求。因此,分析处理过程的表达需要转变为依据任务以及任务间依赖关系构建的大数据工作流的形式,以实现结构化、可重复、可控制、可扩展以及自动化执行。如何有效地构建工作流;如何综合考虑完成时间、成本、资源利用率以及QoS约束等各类因素,实现工作流中任务的高效调度;如何保障工作流执行的安全性、系统健壮性等问题都成为了重要的研究课题。
云计算技术的产生,提供了整合异构计算资源的能力,能够为大数据分析处理提供更为强大的任务处理能力。但是这也增加了合理选择计算资源、完成任务到计算资源映射的难度,使得编排管理问题变得更为复杂。同时,云环境自身的资源波动、资源争夺、服务中断、QoS满足率下降等问题同样给大数据工作流的编排管理带来了巨大挑战。
相比于传统的集群内部(如Hadoop集群)的工作流编排管理,云环境下的大数据工作流编排管理,不仅需要追求完成时间、成本、资源利用率以及QoS满足率等传统优化目标,同时还要应对以下云环境带来的新挑战。
1)异构计算资源的分配、回收与管理。
2)云存储资源以及数据存放位置的选择。
3)计算资源和存储资源间数据的动态传输。
4)任务执行状态与中间结果的同步。
5)云上数据与计算过程的安全性与隐私的保障。
6)执行过程的监控与容错处理。
同时,由于当前的云环境基础设施大多为跨地域的多站点云环境,高昂的跨地域通信成本也使得以上问题更为复杂。
近些年来,出现了众多关于工作流编排管理的研究综述。文献[1-5]关注异构云环境下的大数据工作流任务调度相关研究内容,分别从数据、存储、平台以及应用的特性分类综述了有关算法、技术和框架。文献[6]关注分布式环境下工作流编排管理容错技术的分类与研究,根据故障类型不同,对不同的容错技术进行了分类与综述;描述了对故障进行建模的不同方法,定义了评估容错能力的各种指标;列举了广泛采用的工作流编排管理系统。而文献[7]则分类综述了大数据系统主流的工作流调度框架,分析了不同框架的调度方法和功能,同时也提出了评估工作流调度框架的基准指标。
相比于前述若干研究,文献[8-9] 则是以更为宽广的视角来研究大数据分析处理系统中的工作流编排管理。文献[8]将工作流的编排管理划分为4个步骤:工作流的构建、映射、QoS监控以及动态重配置,并针对划分出的各步骤中具有代表性的软件框架、算法及相关技术进行了综述。进一步地,文献[9]根据文献[8]中的划分方式,将工作流编排管理的挑战细分为:工作流规范语言、工作流初始化、工作流的并行化与调度以及工作流容错等。并且,从数据、工作流、软件框架以及异构计算资源等不同的级别全面地综述了时下经典、前沿的研究成果。
纵观如上工作流编排管理的研究综述,文献[1-7]专注于大数据工作流编排管理过程的某一个方面;而文献[8-9]关注于完整的大数据分析处理系统,内容十分丰富,其中也对工作流编排管理的概念、过程以及挑战进行了合理的分类及详细的介绍。本文则聚焦于大数据分析处理系统中工作流编排管理的整个过程,首先参考文献[9]中对于工作流编排管理的划分方法,将云环境大数据工作编排管理分为工作流构建、划分、调度与执行以及容错4个方面,分类综述近年来受到广泛关注的相关研究,然后归纳整理这些研究中主流的工作流编排管理技术,最后将视角回归至大数据分析处理系统,分类对比各项研究内容给大数据分析处理系统带来的收益。
本章首先通过对一个典型大数据工作流实例的分析来阐明大数据工作流编排管理的核心步骤,并根据编排管理步骤,提出对于工作流编排管理阶段的划分,包括:工作流的构建、划分、任务调度与执行以及容错。之后,简要介绍并系统梳理各阶段近年来受到广泛关注的相关研究。最后,针对本章中的各种算法进行时间复杂度分析结果的整理与汇总。
为了帮助理解云环境下大数据工作流及其编排管理过程,本节首先对一个云环境下典型的大数据工作流实例RTFM(Real-Time Flood Modelling)[8]进行分析,如图1所示,RTFM通过分析来自社交媒体以及城市中各种传感器的数据来实时预测洪水事件并告警。该系统可以分为3层,即大数据分析应用层、大数据框架层和数据中心层,而大数据工作流编排管理是一个跨越了所有层级的交叉问题。
图1 RTFM:大数据工作流编排管理实例
1)大数据分析应用层:在大数据分析应用层,包含了捕获数据、位置信息发现、异常发现、查询其他数据源、数据聚合、社交媒体数据分析、事件分类、洪水预测模型、事件告警等数据分析活动(步骤)。活动间存在依赖关系,例如,只有在完成捕获数据以及查询其他数据源的步骤后,才可以进行数据聚合操作。这些分析活动相互协作,组成工作流,完成洪水实时预测与报警的功能。
2)大数据框架层:应用层中的各种分析活动,需要在大数据框架层进行实际执行。例如,数据捕获任务需要映射到框架层的数据摄取框架中来进行社交媒体和传感器数据流的接入;位置信息发现、异常发现等分析活动需要映射到流/批式数据处理中进行;分析任务结果的存取,则需要映射到SQL/NoSQL数据库中进行。这就需要对已构成的工作流进行划分,将某个任务或某些任务构成的子工作流分配至处理框架。
3)数据中心(云端)层:可以将数据中心视作一种极大规模的基础设施,作为应用层、框架层执行的底层资源提供者。在工作流的执行过程中,框架层会将任务映射到具体的计算资源中并行执行。例如,通过Hadoop将数据批处理任务以Map-Reduce的方式在多个Worker节点上来完成。现实的云环境中往往多数据中心规模十分庞大,且存在跨地域分布(即跨地域的多站点云)的问题,能否将任务分配至适合的节点来执行、减少数据移动、降低通信成本、提升执行效率就成为了影响大数据分析处理系统性能的重要因素。
本文按照上述的3层结构,将工作流编排管理划分为4个步骤。1)工作流构建:用于描述、创建工作流;2)工作流的划分:用于将工作流划分为工作流片段,并映射至不同的计算框架、节点上执行;3)工作流的调度与执行:用于实现工作流片段中的任务分配到具体计算资源实例并执行;4)容错:当系统出错时采取合理的策略进行动态重配置,保障系统正常运行。
工作流构建是指通过工作流描述语言进行任务及其依赖关系的描述。在大数据分析处理系统中,包含了各种类型的任务,如数据预处理、数据查询、数据批/流处理以及基于机器学习的数据挖掘任务等。这些任务各自有专有的任务描述方式,而工作流描述语言则需要具备全面性和灵活性,来支持各种任务的描述。工作流描述语言的主要挑战在于:1)面向使用者来说,工作流编排管理系统应具有强可用性,因此,工作流描述语言应是易于理解的,支持的功能应是全面的;2)面向大数据分析处理系统来说,工作流编排管理系统的核心能力是复杂流程的自动化执行,因此,工作流描述语言应能够自动转化为面向不同大数据框架(如Hadoop、Spark和Flink)的特定语言[9]。此外,在云环境下,由于引入了资源管理(如QoS约束、性能需求、安全与隐私等)、大数据管理(如数据格式、存储约束、数据移动等)以及多站点云环境下的可伸缩性等问题,工作流描述语言的挑战变得更为复杂。
Common Workflow Language(CWL)[10]是一种认可度较高的用于描述工作流的开放标准,能够在不同软硬件环境中进行移植和扩展。CWL旨在为各种数据密集型科学服务,使科学家能够共享数据分析工作流,广泛应用于生物信息学、天文学和高能物理等学科。
YAWL[11]以基于Petri-Nets的工作流语言为起点扩展改进而来,是工作流规范语言家族中的重要一员,该语言自2003年首度公开,逐步发展至今,同时具有同名的开源工作流编排管理系统[12]。Guix Workflow Language(GWL)[13]由Guile Scheme的科学计算语言扩展而来,使用可执行的代码来进行工作流的定义。CloudSlang[14]是一种基于YAML文件的工作流语言,可以轻松地以结构化、易于理解的格式定义工作流。文献[15-16]提出了一种新型大规模科学数据分析工作流语言Cuneiform,并以其为基础构建了工作流执行平台HiWAY,实现了Cuneiform语言的编程、工作流可视化、调试、日志记录、世系管理等工具以及工作流的并行执行。
执行一个大数据工作流,首先需要将一个完整的工作流划分为若干个“片段”。这些“片段”由单个或者多个任务及其相应的数据依赖组成。对于云环境下的大数据工作流划分,需要考虑一系列的限制因素,例如适应计算节点的资源限制,满足不同类型任务的存储需求,不同节点间的负载均衡,以及尽可能减少数据移动等。
文献[17]面对异构计算环境中计算能力不同、计算节点种类多样以及节点间通信机制复杂等问题,采用基于流的数据处理模型,提出了一种数据密集型工作流划分算法PWDA,致力于使工作流分区间数据的移动最小化。PWDA算法通过将工作流分成划分和映射2个阶段,降低了异构计算环境下工作流执行完成时间。文献[18]基于PWDA算法[17]进行了扩展与改进,提出了I-PWDA算法,通过在工作流编排过程中的瓶颈(计算密集程度最高)任务上应用数据并行技术,进一步提升性能。文献[19]中则采用了多种级别不同粒度的划分方法与混合式遗传算法来实现数据移动最小化的目标,从而降低了工作流的平均完成时间。
文献[20-21]面向多站点云环境提出了一种基于负载均衡和超图(HyperGraph)理论的大数据工作流划分算法,该算法将工作流DAG的划分问题建模为超图的最短路径问题,首先将DAG转换为超图,然后,采用平衡超图划分方法执行工作流的k路径划分,最后,通过基于Fibonacci堆优化的Dijkstra最短路径算法来找到对于所有超图片段来说最佳的划分策略。实验表明,在同样的资源占用下,由于降低了任务平均等待时间,该划分算法具有更短的平均完成时间、更低的能耗以及更高的QoS达成率。
文献[22]提出的划分算法GTAA,同样是面向多站点云的工作流划分问题。GTAA首先根据任务之间的依赖性将工作流划分为子工作流,并将每个子工作流分配至特定的云来执行,以此来降低数据中心之间的数据传输成本。此外,由于不同的子工作流可能处于跨地域的数据中心(DC)之中,其网络延迟将远高于DC内部,因此对于工作流中被多个任务/子工作流依赖的关键任务,采用在跨地域DC中创建任务副本的方式,来降低跨地域DC通信的网络延迟。
文献[23]提出了一种优化IaaS级别云环境的系统资源利用率的划分/调度策略,该研究首先将整个工作流划分为若干个部分关键路径(Partial Critical Path, PCP),然后通过基于智能水滴算法(IWD)改进而来的IWD-DWS算法进行PCP的选择并将各PCP分配至适合的VM实例。实验结果表明,算法在完成时间、QoS满足率、成本以及资源利用率等方面明显优于对比的基线方法。
在将工作流划分为“片段”后,便需要将“片段”或任务调度至计算资源上执行(如将RTFM实例中的告警任务分配至洪水分析模型所在的计算节点)。任务的调度与执行为工作流编排管理系统的重点,其核心为任务调度算法的研究,同时,也需要兼顾诸多其他方面的因素,如:1)任务及资源的异构性;2)调度的动态调节;3)安全性问题。
1.4.1 任务调度算法
任务调度是工作流编排管理中最为重要的问题之一,它的核心任务是在保障用户的QoS需求前提下,充分利用系统的资源,尽可能地降低工作流的执行时间和执行成本。为了实现这一目标,任务调度算法至关重要,其优劣将直接影响执行时间、执行成本、资源利用率、能耗等一系列与经济利益密切相关的性能指标。关于工作流任务调度的经典算法,在之前的研究中[1-5,8-9]已进行了较为详尽的研究,本文主要调研近年来新提出的受到广泛关注的调度算法,如表1所示。
表1 大数据工作流任务调度算法汇总
1.4.2 资源异构性
云环境下的大数据分析处理系统,往往是由依赖于不同执行框架的多种类型任务和异构计算资源组成,对于异构计算资源的兼容,同样是调度与执行需要关注的重要因素。
文献[41]设计了一种大数据工作流编排管理系统的架构并实现了相应原型系统DATAVIEW。在该原型系统中进行的一系列实验,证明了作者们提出的系统架构能够通过增加节点的数量来减少工作流的完成时间,能够通过EBS技术提升大数据集的移动速度,提升了系统的可伸缩性和性能。之后,作者在文献[42]中对研究进行了扩展,在云资源管理子系统的体系结构中引入2个新模块:1)利用docker容器实现智能和轻量级的依赖关系管理;2)在工作流引擎子系统中添加了弹性资源管理模块,在执行期间动态调整虚拟资源数量,提高了资源利用率。通过这些扩展研究,进一步提升了系统的异构资源兼容性、可伸缩性以及性能。
在文献[43]中,作者将软件容器技术和面向消息中间件的技术应用到大数据工作流执行中,设计并实现了相应的原型系统,提升了可伸缩性。同时,通过引入代码注入技术,实现了面向特定领域代码的灵活注入,能够兼容异构的分析处理任务,并且支持以更高层的方式描述工作流,降低了数据科学研究者(非技术专家)的使用难度,提升了系统的可用性。
1.4.3 动态调节
大数据工作流调度需要考虑如何针对运行时发生的变化(如数据到来速度的变化和资源可用性的变化)来动态进行调整。以流式大数据工作流为例,这类应用往往需要不间断地运行,处理源源不断的数据流,且数据到来的速率也是随时变化的,这就需要先进的动态编排管理技术来实现其高效执行。为了应对流式工作流运行中的数据波动(即数据到来速率的实时变化),文献[44]中设计了工作流的动态调度技术,通过动态修改流式工作流应用的调度计划来应对运行时的数据波动,以达到执行成本最小化的目的,同时扩展了文献[45]中提出的2个静态调度算法,将算法适配至动态调度技术中。
1.4.4 安全性问题
在云环境下,计算节点与集群面临各种网络攻击,敏感数据也面临信息泄露和恶意篡改的威胁。除了提升性能与降低成本,安全性同样是用户十分关注的问题。然而,现有的工作流调度中关于此话题的研究相对较少。
为了解决云环境下多租户共存导致的被入侵风险,文献[47]提出了一个基于攻防游戏模型的云上工作流调度算法CLOSURE。鉴于攻击方和防御方信息不对等(攻击方可以通过网络扫描获取防御方策略信息而防御者却无法获取有关攻击方的信息)的特性,该算法在工作流程执行过程中动态切换防御策略,以此来削弱网络扫描效果,将工作流安全问题转化为攻防游戏模型,然后,通过计算模型的纳什均衡来获取混合防御策略的概率分布,并基于此分布执行虚拟机分配。同时在映射阶段应用了HEFT算法来提升防御策略切换速度和工作流执行效率。实验结果表明,该算法可有效削弱攻击方对防御方的策略获取能力。
云环境下的大数据工作流具有复杂、动态、异构等特性,其执行过程通常十分漫长,同时,由于在动态环境中进行,执行过程中故障随时可能发生,导致故障的原因有很多,如执行环境的变化、计算资源的丢失或分析任务执行过程中的错误。大数据工作流由数据和计算密集型任务组成,当工作流中的某些任务因节点故障而失败时,工作流无法按QoS需求完成执行,甚至会造成数据丢失。容错处理需要对故障进行预测并采取相应的应对措施来避免在发生故障时可能产生的高额开销,这一任务极具挑战性,近年来典型研究如下:
文献[48]提出了一种动态资源配置方法DRPM来实现云环境下工作流的失败任务恢复。该方法将NSGA-II算法用于求解资源配置问题。当故障发生时,将仍在云中运行的计算节点编码为染色体,这些染色体作为NSGA-II算法的初始种群。经过算法迭代,得出失败任务的最优资源配置策略。在完成资源配置后,通过故障恢复机制来恢复失败的任务。
文献[49]提出了一种具备容错能力的任务聚合算法FT-HCC,该算法采用副本的方式来保障容错性,并通过将复制的多个任务副本分配至不同的计算资源同时执行来保障所有任务在截止时间之前完成;同时,算法通过关键任务聚合和水平聚合2种技术将规模较小的工作流任务合并为一个相对较大的工作流来减少系统开销。实验表明,该算法在相同的故障率的情况下,工作流的执行时间和执行成本更低。
文献[50]提出了4个异构云环境下的定量容错调度算法,在保障系统可靠性的同时优化调度性能:QFEC算法用于实现执行成本最小化,QFEC+算法在QFEC算法选择出的解中选择冗余较少的解,QFSL算法用于实现完成时间最小化,QFSL+算法在QFSL算法选择出的解中选择满足可靠性且冗余较少的解。
文献[51]将重提交和副本策略相结合,提出了一种面向截止时间约束的云环境工作流调度容错方法ICFWS。该方法首先将总截止时间约束递归划分为每个任务的截止时间子约束。然后根据子约束为每个任务选择相应的容错策略。之后,ICFWS根据资源的按需配置模型,为每个任务保留相应的VM和时间间隔。此外,ICFWS设计了在线预调整方案,来扩大某些未执行任务的子约束,并相应调整容错策略。实验表明,ICFWS能够发挥副本和重提交策略的各自优势,满足容错性,同时满足工作流截止时间约束。
文献[52]提出了一种离线工作流调度容错算法FTESW,该算法在主备份调度策略基础上,新设计了一种弹性机制,通过资源迁移技术来实现基于资源请求的动态调节资源配置。FTESW在实现容错性的同时,提高了云环境下工作流的资源利用率。实验结果表明,FTESW能够有效地为云系统中的工作流提供相应的容错调度策略,并且具有更高的资源利用率和更低的执行成本。
文献[53]提出了一种自适应的主动容错的工作流调度器,该调度器的核心组成部分为分析器和模糊计划器。在分析器中,作者们采用了一种基于自适应网络的模糊推理系统预测模型ANFIS,主动预测与控制资源负载的波动;在计划器中,会接收来自分析器的负载结果,并根据该结果将状态预测区分为“无变化”“即将出错”“已出错”3种状态,并相对应地提供了IDE调度算法、主动容错处理、被动容错处理3种不同的处理策略。实验表明,作者们的研究,不仅提升了系统的容错能力,同时也优化了系统的能耗、资源利用率、执行时间以及执行成本。
在目标跟踪系统中,解决非线性滤波最常用的方法是EKF方法及其相关改进算法。CKF算法是近年来新出现的一种非线性滤波算法,该算法利用了三阶球面-径向容积积分准则进行了严密的数学推导,在理论上对该算法具有严格的保证[5-6],估计精度和数值稳定性都比较高。在对CKF算法深入研究的基础上,有学者提出了降维CKF算法[6-7],并将降维CKF成功应用于工程实践[7-8]。
上述各算法时间复杂度分析结果汇总于表2。未特殊说明,则以n表示任务数量,m表示VM数量。作者未在文中进行详细算法时间复杂分析的,以“--”表示。
表2 算法时间复杂度分析结果汇总
本章针对大数据工作流编排管理中的典型技术,对前文提及的各项研究中提出的方法及其特性、优势、待改进项等方面进行分析。主要包括:工作流构建技术、调度优化算法、容器技术、元数据管理技术以及预测模型等。
工作流构建是工作流编排管理的第一步,由编排管理系统的用户通过工作流描述语言对任务及依赖关系进行描述,于整个编排管理过程起着至关重要的作用。工作流构建主要需要关注的特性如下所示。
1)用户友好性:需要以友好的方式引导可能并不具备专业编程技能的数据领域专家,去创建、理解与管理整个工作流。
2)可扩展性:需要支持扩展或替换现有的组件,以应对种类繁多、日新月异的大数据分析处理任务。
3)可移植性:需要在不同的执行环境中便捷地移植,以适应云环境带来的环境异构性挑战。
4)可伸缩性:需要支持已构建工作流的动态伸缩,以支持不同的任务规模与数据规模。
5)动态调度支持:需要随着时间推移而动态调整工作流,以应对云环境下计算资源的实时变动以及不断变化的新需求。
前文中提及的工作流语言构建特性对比见表3,描述方式的梳理见表4所示。
表3 工作流语言特性对比
表4 工作流语言描述方式对比
表5参考了文献[3]中的分析方法对前述调度优化算法进行了对比与总结。目前调度优化算法最重要的话题仍在于成本与完成时间的双目标联合优化问题,在此基础上,存在不同的研究引入了不同新优化目标,如异构资源兼容性、资源利用率、能耗以及负载均衡等。研究中的主流方法主要包括:1)新兴的元启发式算法改进适配至工作流调度问题中;2)对经典的工作流任务调度算法进行改进,如与不同的调度策略进行结合,或算法间进行组合的混合式算法;3)对算法的优化目标进行扩展,以实现更多方面的联合优化。
表5 调度优化算法对比与总结
续表5
容器技术[54]提供了一种逻辑打包机制,以这种机制打包的应用可以脱离其实际运行的环境。利用这种脱离,不管目标环境是私有数据中心、公有云,还是开发者的PC,都可以轻松、一致地部署基于容器的应用。容器化使得人们不必为具体的软件依赖版本和应用的特有配置等细节而费心,其主要优势包括:环境一致、处处运行以及逻辑隔离。图2为容器技术实例。
图2 容器技术实例
将容器技术应用于工作流编排管理,其优化效果主要在于:
1)由于容器可以将软件连同依赖的基础环境一同打包,并能进行有效的管理,对于编排管理系统本身,容器即可作为部署以及组件管理的有效手段,例如,文献[42]中即是通过引入Docker容器,实现了组件、依赖的智能化管理。相比于传统的物理机/虚拟机的组件和依赖管理,容器技术的优势在于:①能够以更轻量化的方式提供不同组件所依赖的大量库、软件包以及环境变量等;②能够将组件及其依赖快速部署到虚拟机,促进虚拟机资源更充分的利用。
2)由于容器轻量化、易部署,且几乎可以处处运行,就使得容器技术成为应对大数据工作流编排管理中资源异构性问题极佳的解决方案。传统的将任务应用部署至虚拟机的方式,需要在部署应用之前,进行大量的依赖环境的部署操作,同时,随着任务类型的增多,会造成虚拟机节点上安装了大量的可能并不会再用到的依赖项,甚至可能因为版本差异造成冲突,使得任务无法成功执行。而应用容器技术则可以将任务应用及其依赖打包,快速部署至不同类型的计算资源上进行调度、执行,不再使用时直接删除容器即可。而对于系统来说,这仅需在配置文件中去进行简短的镜像、网络以及依赖等配置即可实现[43],极大程度保障了异构兼容性和可伸缩性。
3)由于容器间逻辑隔离的特性,使得基于容器技术的编排管理过程可以安心进行,并保持系统稳定运行。当多个容器(如Docker Container)部署在同一虚拟机中时,每个容器与其他容器逻辑上是完全隔离的,即便不同的组件或任务应用容器中具有相互冲突的依赖项亦可以正常运行。例如,不同的组件或任务应用可能需要不同版本的JDK,此时只需分别将对应版本的依赖打包至容器中即可正常运行,而不必再分别部署2个版本至2台虚拟机,如此,进一步提升了资源利用率。
元数据(Metadata)是用来定义数据类型的数据,主要描述数据自身信息,包含源、大小、格式或其他数据特征,通俗来讲,元数据就是“描述数据的数据”,帮助人们更好地理解和使用数据的一组信息。在大数据时代下,海量的数据往往需要存储在以HDFS为代表的分布式文件系统中,这就造成了人们面向的数据往往是数量极为庞大却很小的文件(MB级甚至是kB级)。这意味着元数据的访问将对整个工作流I/O产生极大影响(有时甚至是决定性的)。此外,云数据中心通过高延迟的广域网互连,当元数据服务器位于不同的数据中心时,此时远程访问元数据,则会导致极其高昂的通信成本,严重影响工作流的执行。
文献[55]从集中/分布式存储以及有/无副本2个方面探索了元数据的管理策略。研究发现,分布式存储元数据和生成元数据的副本的混合策略更适合大规模多站点云环境下工作流执行需求,根据工作流结构选用正确的策略组合可以提高工作流的执行速度,从而提升系统的性能。基于热元数据(即频繁被访问的元数据)的概念,文献[56]提出了一种去中心化的、分布式的元数据存储模型,来实现多云环境中优化热元数据的访问以及确保热元数据的可用性,并通过与多云工作流执行引擎Chiron结合,验证了模型在真实应用场景下的可用性。同时,该研究也证明了热元数据的有效管理可以提高工作流管理系统的性能。文献[57]基于去中心化的分布式存储元数据、保存元数据副本以及热元数据处理策略[55-56]整合并设计实现一个工作流编排管理系统DMM-CHIRON,提高了元数据的访问效率,缩短了工作流的执行时间。
当下元数据管理针对云环境下复杂的工作流的优化研究相对较少,缺乏可伸缩的元数据服务已成为许多跨云环境下大数据工作流的重要性能瓶颈。
随着近年来机器学习技术的飞速发展与日益普及,基于预测的模型引起了人们极大关注。预测模型的核心思想在于,通过从过去的经验中提取有用的知识,对未来环境进行预测。动态任务调度问题,作为任务调度的一大难点,往往被建模为一个动态多目标优化问题。而针对动态多目标优化问题,预测模型可以用来预测环境改变的时间以及最优解的移动。文献[58]通过引入神经网络来预测最优解的变化方向,以便在动态环境进行跟踪,更快解决单目标优化问题。文献[59]将支持向量机(SVM)与NSGA-II算法相结合,用于解决动态多目标优化问题。受启发于前两者,文献[37]针对动态工作流调度问题进行建模并引入了资源故障、目标数量的变化以及延迟等动态因素,采用神经网络进行动态工作流任务调度问题的多目标优化求解。文献[53]则将预测模型应用于编排管理系统的容错之中,通过接收到的负载信息对计算节点的故障状态进行预测并控制负载波动,从而更好地进行容错处理,实现主动容错。
从如上的各研究结果来看,对工作流编排管理进行合理的建模,引入预测模型和机器学习技术,可以带来显著的收益,是一个极具前景的研究方向。
本章从大数据分析处理系统的视角来针对前文中综述到的所有研究及相应的原型系统进行分析,深入分析大数据分析处理系统需要具备的主要特性,并系统梳理各项研究分别为大数据分析处理系统带来了哪些方面的收益,见表6。
表6 大数据分析处理系统级收益分析
大数据分析处理系统主要需要关注如下特性。
性能:性能是评估一个大数据分析处理系统的最为关键的维度,大数据分析处理系统的性能指标主要包括吞吐量、任务(工作流)完成时间以及资源利用率等,反映了系统的数据处理能力以及资源利用效率。
成本:主要指金钱成本,包括对于IaaS云环境下的计费费用以及数据中心的设备、能耗等成本,同时,也与资源的实际利用效率息息相关。
可伸缩性:弹性伸缩能力对于大数据时代的分析处理系统尤为重要,系统需要根据任务、数据的规模变化进行动态的伸缩,来应对不同时间、不同规模的数据处理需求,既要避免系统资源不足导致任务失败,也要避免系统资源过剩导致的资源浪费,编排管理不同阶段的研究,均需要对可伸缩性进行针对性的改进。
健壮性:健壮性是大数据分析处理系统不可或缺的特性之一,大数据分析处理系统通常是不间断长期运行,需要一直能够正常地运行,且具备从部分失效中自动恢复的能力,当故障发生时,能够进行恢复的同时,保障系统其他部分、其他任务的正常运行。
用户友好性:大数据分析处理系统的用户以数据科学家为主,这些数据科学家可能并不具备高深的大数据编程的专业技能,因此,系统需要向实际的用户提供友好的交互方式,这其中最为关键的部分即为与用户直接产生交互的工作流构建过程。
本文通过对近年来已有的大数据工作流相关文献综述进行对比、梳理,并参考了文献[8-9]中的分析方法,将工作流编排划分为工作流的构建、划分、任务调度与执行以及容错处理4个方面,对云环境下大数据工作编排管理系统的相关研究进行综述,呈现了近年来大数据工作流编排管理各领域的研究进展。
随着云计算技术的发展与大数据分析处理过程日益复杂,云环境下大数据工作流编排管理各个研究方向均受到广泛关注。其中,最受关注的研究方向为面向任务调度与执行的多目标优化算法研究。在多种优化目标中,又以完成时间和成本两者最为关键,近年来产生了大量相关的优化算法。
尽管大数据工作流编排管理的研究已取得诸多进展,但仍旧存在一些需进一步重点关注的研究方向。
1)云间的工作流迁移、复用与共享:云间环境的异构性导致在工作流跨云迁移时难以在目标云中找到等效的实例,同时,没有一个被普遍遵循的云资源配置、管理标准,这极大程度地阻碍了工作流在云间的复用与共享。因此,亟需相关研究,来实现异构云之间等效计算实例的发现,进而实现云间工作流的迁移、复用与分享。
2)资源配置与波动问题:云计算技术实现了计算资源的按需分配,但是为不同任务合理分配资源,以及在执行期间对这些资源进行维护与追踪仍然极具挑战性。同时,由于云资源的动态性,如何应对资源波动,避免造成意外损失,亦是重要的研究话题。
3)安全性与隐私:云计算与大数据分析处理平台带来了诸多好处的同时,应用与数据迁移至云端也带来了安全性和隐私方面的隐患,如何平衡工作流中数据密集型应用的安全性与效率,如何保护数据的安全与用户隐私,同样十分重要。
4)机器学习技术的应用:目前出现了一些将机器学习方法应用于任务调度的研究,从实验结果来看,这些方法极具前景,未来可作为一个重点研究方向。