分布式处理平台节能计算研究综述∗

2018-11-16 06:59蒲勇霖
关键词:流式数据处理集群

于 炯,蒲勇霖,鲁 亮,刘 粟

(1.新疆大学信息科学与工程学院,新疆乌鲁木齐830046;2.中国民航大学计算机科学与技术学院,天津300300)

0 引言

随着移动互联网、物联网以及云计算等新兴技术的不断发展,其中最根本的影响是数据不断的产生与积累,直至大数据时代的到来,数据的增加已达到前所未有的速度,并持续不断的增加下去.此外,数据的本质也逐渐发生改变,从简单的被用做信息处理逐步转换成一种基础资源,因此如何更好地利用大数据资源一直是广大学者共同探讨的问题,针对大数据内数据的处理、分析以及管理为大数据研究带来了极高的挑战[1].现阶段,大数据领域的实际应用与学术研究已成为企业界与学术界的热点,其处理模式分布式处理主要包括流式处理、批量处理、图处理及交互处理等[1∼5].流式处理利用内存读写延迟极低的特性,有效地提高了数据的处理效率,深受广大用户的追捧,常用的大数据流式处理平台主要有Flink系统[6]、Heron系统[7]以及Storm系统[8]等.批量处理作为能够广泛部署在通用平台上,并且具有可拓展性、高效率、低成本与可靠性等优点深受工业与学术界的喜爱,常用的批量处理平台主要有Hadoop系统[9]与Spark系统[10]等.图处理形象的表达出了数据之间的关联性,并且更容易区分同类数据的有用信息以及满足顾客的需求,具有较大的发展潜力.常用的图处理平台主要有GraphX系统[11]与GraphLab[12]系统等.交互处理融合了不同计算的优点,多种计算方式共同合作,是未来计算的发展趋势,具有巨大的发展前景.常用的交互处理平台主要有Spark Streaming系统[13]、MapReduce系统[14]以及Dremel[15]系统.但是这些分布式处理平台大都只考虑了系统的性能及数据处理能力,而对于其产生的高能耗问题关注度较低且节能算法相对较少.目前针对全球范围内的数据中心正在不断部署,其高能耗、高费用以及高污染的问题也在逐步突出[16].因此,如何有效解决新兴信息技术带来的高能耗问题,一直是广大学者共同探讨的焦点.

据调查,现阶段IT业二氧化碳的排放量占全球比例的2%,此外预计在2020年这一比例将翻倍[17].根据美国纽约时报报道:全球数据中心方面每年的总用电量超过3000亿kW·h,相当于30座核电厂的总发电量,而巨大的能源中被用作响应用户请求却仅有6%∼12%[18].据预测,到2025年IT行业的平均能耗将超过2006年的5倍,而网络设备的能耗会超过13倍[19].众多的例子证明,IT信息技术行业的能耗已成为一个不容忽视的问题.根据预测,10年各种电子设备(如路由器、交换机等)的总耗电量为8680亿度电,达到全球总耗电量的5.3%[20].与此同时,Barroso等人长达半年对Google内部5000多台服务器进行的调查统计发现:服务器在大多数时间内的能源利用率仅仅维持在10%∼50%之间,通过图1可看出服务器在负载较低(小于10%)时,电能消耗也超过了峰值能耗的50%,由此可见Google服务器完全没有达到高效利用的要求[21].据文献[22],分布式处理系统占整个云计算中心能耗的27%∼40%,因此不管是降低大数据应用的运营成本,还是从降低能耗的角度出发,研究分布式处理节能算法都有很高的应用价值和发展潜力.

本文的结构组织如下:第1章主要对分布式处理节能计算研究进行了简单的分类与概述;第2章主要从大规模不同数据处理系统方面对已有的研究进行分析比较;第3章对现有分布式处理节能计算存在的问题进行了分析介绍;第4章对未来工作的研究发展进行了分析展望;第5章总结全文.

图1 服务器能耗利用率与负载率之间的关系[21]

1 分布式处理节能计算研究分类

从前一章可以看出,IT行业的高能耗已经是一个刻不容缓亟待解决的问题.为解决IT行业日益增长的高能耗、低效率的问题,工业与学术界针对大规模的数据处理节能算法可归为四类:流式数据处理节能算法、批量数据处理节能算法、图数据处理节能算法以及彼此交互的数据处理节能算法.其中,流式数据处理节能算法主要以Storm为核心进行算法的改进,主要在不影响系统性能的前提下,通过对工作节点的资源进行整合调用或降低工作节点的内存电压以此减少不必要的能耗损失达到节能的效果[23∼26];批量数据处理节能算法主要以Hadoop为核心进行算法的改进,通常主要对框架内在区域进行切割划分,以休眠部分磁盘区域或通过动态组件失活(dynamic component deactivation)在一段时间内关闭硬件的部分组件达到节能的目的[27∼29];图数据处理节能算法主要以GraphX为核心进行算法的改进,主要对图边缘的数据进行判别,确定数据是否重要,弹性的调节系统的功率达到节能的目的[30∼32];交互数据处理节能算法主要以MapReduce为核心进行算法的改进,主要以任务完成后关闭相关节点[33]、作业调度[34]以及配置参数优化[35]等提高能源利用率达到节能的效果[36∼39].表1为对大规模的数据处理节能算法进行分类,并指出其优缺点.

表1 数据处理节能算法

此外已有学者针对节能算法的本质提出了基于硬件[40]与软件[41]两方面进行分类研究,使得对于节能算法的本质有了更清晰的认知.硬件节能策略主要对系统动态电压和电源进行缩放管理,替换高能耗的电子元件,以达到节能的目的.其方法操作简单、效果明显,但在大规模的集群部署中存在成本过高的问题.软件节能策略是现在研究的热点,现阶段软件节能算法主要以资源的调度及处理为主,针对分布式处理的资源进行调度及处理,在不影响集群整体性能的前提下降低部分工作节点的能效(如降低电压、休眠等)以达到节能的效果.由于不需要对价格昂贵的硬件元件进行替换,因此深受工业与学术界的追捧,是现阶段研究的热点.以下对软件节能算法的具体情况进行介绍.

目前针对现有软件方面的节能算法主要划分为对节点与数据进行调度两类,节点的调度主要针对如何选择分布式处理的部分磁盘与节点为上层应用提供服务方面的研究,并让剩余磁盘及节点进入低能效的状态达到节能的效果.节点调度针对部分节点的处理(如降低电压、休眠等)与数据调度息息相关,且目前数据的调度一般分为动态数据的放置策略[42∼44]、静态数据的放置策略[45∼47]以及缓存预取[48∼50]策略三种.其中静态数据的放置策略根据固定的数据放置策略将数据放置在规定的节点,之后不再改变原有的数据处理及传输结构.动态数据的放置策略针对节点数据的访问频率动态改变数据的处理及传输位置,将访问频率低的节点数据迁移到数据访问频率高的节点上,从而降低系统访问频率低的节点能耗,以此来达到节能的目的.缓存预取策略借鉴了内存缓存的思想,将磁盘中的数据迁移到内存等低能耗的设备中,以此来达到节能的效果.表2为针对节能算法的本质能耗管理进行分类,并指出其优缺点.

2 大规模的数据处理节能算法分类

大规模的分布式数据处理节能算法分类在前文已有介绍,主要分为流式数据处理节能算法、批量数据处理节能算法、图数据处理节能算法以及彼此交互的数据处理节能算法.

2.1 流式数据处理节能算法

现阶段流式数据处理节能算法主要从与虚拟机结合的角度出发,通过对虚拟机进行部署调整[23,24]考虑数据不可控性以及减少网络数据传输开销来达到节能的目的.文献[23]根据虚拟化数据中心(VNetDC,virtualized networked data center)的思想,提出了在云计算SaaS计算模型下针对实时流式应用的能耗最小化调度策略.该研究针对大数据传输不稳定、不可控以及实时流数据量巨大等特性,在响应时间约束条件不变的前提下,最小化计算与网络传输的总能耗.文献[24]提出一种虚拟机调度的算法,建立每个虚拟机的能耗评估模型,该策略根据流式处理系统提供的不同数据计算资源,评估不同虚拟机间的能耗,且该实验方案通过Xen虚拟化系统实现.但该策略在理想状态下完成,缺乏实际应用场景的实验基础.

表2 分布式处理能耗管理分类比较

Sun等人[25]通过分析集群CPU利用率、资源调度以及能耗之间的对应关系,提出流式大数据处理环境下的实时资源调度节能模型(Re-Stream),并运用分布式流式数据计算理论,定义了整个拓扑执行的关键路径,综合运用拓扑关键路径上性能感知的任务调度策略与拓扑非关键路径上能耗感知的任务整合策略,使集群的性能和能耗均达到最低值.Hidalgo等人[26]通过从优化集群有向无环图的角度出发,提出基于弹性自适应性数据流图模型,并针对该策略实施合理的资源分配,以寻求吞吐量最大化与响应时间最小化,从侧面降低了系统能耗.综上所述,以上研究都是从满足流式处理的特性出发提出合理的流式处理节能模型.但针对Storm平台框架的节能优化,在降低能耗与减少通信开销等方面仍存在很高的研究价值.

现有部分学者针对流式处理框架的节能优化策略进行了一定的研究.文献[54]提出一种带有能耗感知的任务整合(ETC,optimizing energy consumption with task consolidation in cloud)技术,该技术的实行通过限制流式处理系统中CPU的使用率,使其低于额定阈值,整合与巩固了虚拟集群间的任务,从而实现了能源方面的任务整合,降低了系统能耗.然而,任务在集群间处理及传输时具有较高的网络延迟,且网络传输的开销较大.

文献[42]提出基于流式处理的两种副本调度节能算法——性能与能量均衡副本(PEBD,performanceenergy balanced duplication)算法和能量感知副本(EAD,energy-aware duplication)算法,其节能的核心思想是当系统内部不执行相应的数据调度时,立刻降低系统的电压.该策略既保证了系统内任务快速执行,同时满足处理相同拓扑关键路径的任务,系统内部能耗不会有显著提高.其中副本可以避免因延迟而带来的系统性能的降低.该策略有两个明显的优点:1)能耗带来的任务副本可以减少能源彼此间的影响,缩短了任务处理的周期;2)提高了整个系统的性能.然而该策略存在部署难度较高、适用平台相对单一的问题.

文献[48]提出了面向Storm平台的实时数据节能策略(Re-Storm),该策略建立CPU占用率、系统响应时间模型与能耗之间的数学关系,并根据Storm平台实时性的特点定义整个拓扑的关键路径.通过运用拓扑非关键路径上的能耗感知任务整合策略,使得部分位于拓扑非关键路径上的任务分配到拓扑关键路径上,从而降低了系统整体能耗.该策略很好地解决Storm平台中的拓扑非关键路径上任务处理能耗问题,但仍有以下几点有待优化:1)算法有效降低系统整体的能耗,但是算法的时间复杂度显著上升,对系统性能造成一定的影响;2)该策略仅考虑CPU能耗情况,但对别的部件能耗情况并未提及;3)该策略使用的为自己定义的拓扑训练集,并非公认已有的拓扑,因此缺乏一定的通用性.

2.2 批量数据处理节能算法

目前批量数据处理节能算法主要为休眠或关闭部分硬件组件来达到节能的效果[27∼29].文献[43]提出了基于Hadoop节能适应性框架的GreenHadoop,通过设计合适的数据放置策略,合理分配作业调度,在满足作业截止时间约束的前提条件下,通过控制活动节点的数据处理能力达到降低hadoop集群能耗的效果.但是新的数据放置策略会对系统的网络传输成本造成影响,产生一定额外的能耗开销.文献[27]Yahoo公司通过对HDFS集群内部数据块的访问规律进行分析发现,数据块的访问频率具有较强的规律性,因此针对这一特性将DataNode节点逻辑划分为Cold-Zone与Hot-Zone两个区域,并根据数据块的访问规律将其分别放置在两个区域中,通过对Cold-Zone中的DataNode节点进行休眠达到降低整个集群能耗的目的.文献[28]提出了HDFS集群数据块配置算法,该算法根据当前HDFS集群工作节点的负载情况动态地对数据块进行配置存放,当节点负载值达到设定的阈值时,通过节能算法自动调节某些DataNode节点的状态达到节能的目的.综上所述,以上研究大都以关闭或休眠系统部分节点或硬件设备而构建的节能策略,对于从提高任务的调度速率降低数据处理的时间,继而达到节能效果方面的研究仍存在很高的潜在价值.

针对同时提高系统的性能与降低能耗方面,Shin等人[51]采用高能效、低功耗的PRAM去替换系统内部低能效、高功耗的DRAM,以此达到提高集群性能的同时降低能耗.而Vasudevan等人[52]在Hadoop集群上采用高能效、低功耗的CPU、内存与磁盘替换原始的硬件设备,不仅有效降低了整个集群的能耗,还将集群的性能提高了6倍.但是上述研究也存在着以下两个问题:1)由于替换高能效、低功耗的硬件设备成本较高,因此比较适合单台物理机的数据处理,而不适合节点数较多的集群使用;2)替换不同的硬件设备可能对集群的操作系统造成影响,对于操作系统的参数需要重新配比,且存在匹配与融合的问题.

廖彬等人[29]根据集群不同数据处理的访问规律与频率,逻辑地将HDFS的RACK划分为Active-Zone与Sleep-Zone两个不同的区域,并通过计算不同活动因子来配置数据的处理区域,针对数据中心的负载情况适时对Sleep-Zone区域中的节点进行休眠达到节能的效果.该策略通过对整个集群的节点进行节能处理以此达到节能的效果,但是依旧存在两个问题需要注意:1)需要周期性地对集群的数据处理结构进行重配置,耗费了大量的时间开销;2)当数据处理规模较大时,网络传输的成本较高,增加了额外的能耗开销.

2.3 图数据处理节能算法

现阶段图数据处理节能算法主要针对图边缘数据的重要性进行弹性的功率调节,以达到节能的目的[30∼32].Faisal等人[30]根据图形边缘局部数据散列的敏感程度,筛选边缘数据是否重要,并通过弹性计算对图处理平台的边缘数据进行功率的调节以此达到节能的效果.实验结果表明,Faisal等人提出的节能策略能够有效降低原系统能耗的3%∼30%.然而该节能算法还存在以下两点不足:1)该节能算法为基于局部数据的判断与处理,缺少对于全局数据的分析;2)实验选取的评估规模较小,未能分析与完成增加更多节点后,算法的实际节能效果.Sampson等人[49]通过对图处理数据进行类型限定符标记,根据近似算法确定数据的重要性,并对其电压进行缩放管理,改变系统的硬件体系结构以此达到节能的效果.而Esmaeilzadeh等人[50]也是根据改变系统数据处理的硬件结构(如硬件映射关系等),通过调节系统电压达到节能的效果.上述策略虽然节能效果较好,但是其节能策略是从硬件的角度出发,成本较高不适合多节点、大规模的集群使用,此外降低电压可能会对原系统数据处理的路径造成影响,继而对系统的性能带来影响.对于从图处理平台自身结构出发研究节能策略,仍具有很高的实际应用与探索价值.

针对图处理平台自身结构进行能耗的优化,已有学者给出了一些研究成果.Kaur等人[31]首先通过遗传算法对数据的集群进行聚类选举,然后利用图处理的特点根据节点坐标计算系统数据处理的最短路径,有效降低了系统数据处理的总时间,提高系统性能的同时降低了能耗.然而该节能策略还存在以下两点问题值得深思:1)集群内的最短路径并不代表关键路径,在分布式处理中,应该以关键路径的总时间为系统数据处理的总时间;2)系统的能耗受数据处理总时间与功耗的影响,该节能策略缺少系统能耗、总时间与功耗的评估关系,因此缺乏一定的通用性.

文献[32]提出了一种基于FPGA的大规模图处理节能策略,该策略引入外部内存,并提出新的数据处理布局,以此有效激活原系统的内存,使其构成一个并行处理的框架,并与系统的外部内存带宽形成饱和,有效的提高了系统的吞吐量,加快了系统数据处理的速度,从侧面降低了系统能耗.但其仍存在以下三点不足,值得思考:1)该节能策略虽然有效降低系统能耗,然而引入新的能耗设备,外部内存的能耗未做考虑;2)引入新的存储设备带来了额外价格开销,不适合大面积、多节点的集群使用.3)改变现有的数据处理模式,会对原系统数据处理的路径造成影响,且系统参数需要重新配置,带来不必要的麻烦.

2.4 交互的数据处理节能算法

现阶段交互的数据处理节能算法是发展的潮流,其兼具不同平台的优势,可以选择合适的平台来满足自身的需求.目前交互数据处理节能算法主要以MapReduce为核心进行算法的改进,其研究方法多种多样,较为常见的研究一般通过配置参数优化、作业调度、任务完成后关闭节点、选择部分节点执行任务、动态DVFS调频技术、数据压缩技术及虚拟机放置策略等方法达到提高MapReduce能耗利用率的目的[33∼39].Lang等人[33]通过将整个MapReduce的集群作为一个整体用于任务的执行,以此提出一种All-InStrategy(AIS)节能策略,当任务完成后将整个集群的节点关闭以此达到节能的效果.Leverich等人[34]通过对MapReduce参数配置进行大量的优化发现,基于MapReduce框架的参数配置对MapReduce的能耗利用率具有较大的影响,实验表明优化参数配置对提高MapReduce集群的能耗利用率具有现实应用与指导意义.实验结果表明,Leverich等人提出的节能策略有效降低了系统能耗的9%∼50%.Mencagli等人[35]通过动态调节CPU的电压频率,根据DVFS(Dynamic Voltage and Frequency Scaling)技术,适应当前MapReduce集群任务的负载状态,以此达到优化集群能耗利用率的目的.上述节能策略虽然有效降低了系统的能耗,但是仍有以下两点需要优化:1)上述节能策略并未考虑系统性能的问题,未做有关于时间开销方面的评估,其时间开销较大;2)上述节能策略虽然节能效果较好,但是大都从节点调度的角度出发,缺少数据可用性方面的分析.

此外,以上节能策略大都以批量处理为主进行算法的研究,针对流式处理与图处理为主的节能策略相对较少,具有巨大探讨与研究价值.

针对以流式处理为主的交互数据处理的节能策略,文献[36]提出了一种基于Spark Streaming的实时能耗分项计量系统,通过在Spark Streaming中构建一个实时能耗分项计量系统,对数据流的信息进行实时的捕捉和处理,根据实验数据对系统的数据处理能力进行分析,以此建立能耗预测模型对实时数据进行处理,提高了系统的数据处理能力并减少了一定的时间开销,从侧面达到节能的效果.然而该节能策略还存在以下两点不足:1)该节能策略对于实时能耗分项计量系统与Spark Streaming系统的耦合性并未做评估分析,因此对额外产生的能耗未做考虑;2)该节能策略为自己定义的拓扑而非公认的测试集,因此实验缺乏一定的通用性.文献[37]提出了一种基于Spark Streaming的自适应调度的节能策略,该策略通过动态的调节Spark Streaming中的并行批量数据处理的作业,并可以自动调节作业调度的参数,以此达到提高能效的目的.实验表明该节能策略不仅有效提高工作节点负载吞吐量的21%,而且节约了系统能耗的12%.但是该节能策略并未考虑通用性,存在使用平台单一的问题.

宋杰等人[38]通过基准测试对不同大数据处理平台(特别是基于MapReduce的系统)的能耗进行了分析,并建立了能耗预测模型与能耗评估方法,实验表明了不同集群在任务执行时的能耗都存在很大的差异,因此在此基础上需要进一步对集群能耗进行优化.廖彬等人[39]通过对MapReduce的各部件进行能耗分析建立能耗评估模型,并根据能耗模型对MapReduce的作业执行能耗、任务等待能耗以及集群能耗利用率进行优化,从三个方面降低了集群的能耗.表3为不同集群数据处理节能算法的划分以及综合比较.

3 大规模的数据处理节能算法存在的问题

大规模的分布式数据处理在最初设计并没有考虑系统的能耗问题,此外现有的节能算法大都只从系统节能的角度出发,而忽视了执行节能算法对系统自身造成的影响:1)原系统执行节能算法没有对数据的可用性进行分析,主要代表的数据处理节能算法为交互数据处理节能算法、批量数据处理节能算法、图数据处理节能算法与流式数据处理节能算法;2)现有节能算法可能存在系统与算法适应性与普适性的问题,主要代表的数据处理节能算法为交互数据处理节能算法、批量数据处理节能算法、流式数据处理节能算法与图数据处理节能算法,其中交互数据处理节能算法与批量数据处理节能算法主要存在适应性的问题,而流式数据处理节能算法与图数据处理节能算法主要存在普适性的问题;3)现有节能算法可能对系统的服务质量(QoS,qualityof service)与性能造成影响,主要代表的数据处理节能算法为交互数据处理节能算法、批量数据处理节能算法、流式数据处理节能算法与图数据处理节能算法,其中批量数据处理节能算法与图数据处理节能算法主要存在QoS的问题,而流式数据处理节能算法与交互数据处理节能算法主要存在影响系统性能的问题.

表3 不同集群数据处理节能算法的综合比较

表3 续不同集群数据处理节能算法的综合比较

3.1 集群执行节能算法数据处理的可用性保障

分布式数据处理节能算法的基本保证为数据的可用性,数据的可用性表示在任何情况下集群数据都是可访问的.通过休眠或关闭工作节点来达到节能的系统,在任何情况下要求系统进行数据处理都必须存在至少一条完整的链路来进行数据处理,以此来达到数据可用性的目的.因此需要在所有工作节点中找到一条路径来进行数据的处理,该链路一般为系统关键路径.系统关键路径可用图论上的AoE(Activity on Edge Network)网络来进行逻辑的描述.以流式处理(如Storm、Flink等)为例,通过监控各线程数据处理完成的时间,来确定集群的关键路径,必须保障关键路径上的工作节点不进入休眠或关闭状态,以此来保障数据处理的可用性.

以下研究对数据的可用性问题进行了分析,文献[25]Re-Stream就是通过找到集群关键路径,在不改变集群关键路径的基础上,将关键路径工作节点上的数据调度到非关键路径上处理,以此保障了数据的可用性.文献[25]本质上并未改变集群的关键路径,通过改变集群的数据处理位置,降低部分工作节点的功耗,属于基于数据调度的节能策略.文献[39]从分布式数据处理集群中的作业执行能耗、任务等待能耗以及集群能耗利用率三个方面对数据的可用性进行分析建模,并根据研究数据的可用性模型发现,节能算法与数据可用性在分布式数据处理集群中存在矛盾,该文通过建立数据块可用性度量矩阵模型,以此解决了数据块的可用性问题.文献[29]建立对称的数据块处理模型,解决了节点休眠问题对数据块可用性问题的影响,该算法通过替换与迁移任务执行过程中产生空闲节点,并对其进行休眠以达到节能的目的,属于基于节点调度的节能策略.文献[34]通过将集群中所有的数据块或其副本中的可用数据块放入Covering Subset中,以此提出了一种数据块Covering Subset的思想,从而保证集群数据块的可用性.文献[34]根本思想是通过改变原集群的数据放置策略,属于基于数据调度的节能策略.

图2 Hadoop集群的基础架构

3.2 现有系统与节能算法的适应性与普适性问题

现有集群与节能算法存在适应性与普适性问题,针对这一问题,分别以分布式处理系统中流行地批量数据处理系统Hadoop与流式数据处理系统Storm为例进行说明,其中Hadoop系统主要来说明系统与算法的适应性问题,而Storm系统主要来说明系统与算法的普适性问题.图2为现阶段流行的批量数据处理平台Hadoop的架构模式.集群主要由管理与存储数据的管理节点(NameNode)以及存放数据文件的数据节点(DataNode)组成.

现有的集群架构模式并不能很好地满足节能算法的需求,主要表现在以下三点:

1)心跳机制与节能算法的不适应.DataNode节点通过定期将自身的状态信息以心跳的方式发送到NameNode节点,这些状态信息通常包括提供NameNode节点调度的数据处理等信息.现阶段的心跳机制已经不能适应节能算法的实际需求,由于当NameNode节点在规定时间内未接到某些DataNode节点产生的状态信息,即判断DataNode节点此时为失效状态,集群获得信息后会即刻启动数据恢复机制进行数据失效处理.鉴于DataNode节点在休眠(或关闭)状态下无法为NameNode节点传送状态信息,致使被系统误判为数据失效处理.现有研究的数据组织与处理方式缺少关于节点状态(如关闭、活动、失效、休眠等)的监控管理.

2)数据任务的读取与节能算法的不适应.当用户或任务在进行数据查询与读取时,首先通过查找NameNode节点的原始数据获得数据块与集群数据处理的基本信息,并选取离用户或任务最近的DataNode节点进行读取数据的操作.鉴于原始数据对于数据块状态的具体描述较少的问题,当集群任务被传送到执行节能策略的DataNode节点时,易导致引发节能算法失效或集群任务无法完成的现象.

3)批量数据处理任务与节能算法的不适应.Hadoop系统和GFS(Google File System)等都是利用MapReduce编译模型来完成大规模的数据处理任务.批量数据处理利用简单的编译接口向编译人员提供大规模数据处理集群任务方面的支持,很好地屏蔽了数据处理、资源调度以及任务分配等细节问题.但是批量数据处理在执行任务时,任务资源调度策略并未考虑对于集群执行节能算法,由于节点休眠(或关闭)带来的数据不可用问题,易引发批量数据处理在节能模式下任务的频繁失败.

针对Storm系统节能算法与自身的普适性问题.系统主要由主控节点(Nimbus)与从节点(Supervisor)组成,其中Nimbus节点主要负责接收用户提交的一系列拓扑作业,为集群运行状态提供获取接口;而Supervisor节点主要负责监听Nimbus节点分配的任务并且下载作业副本,启动、撤销或暂停任务的工作进程(Worker)和工作线程(Executor).具体基础架构模式如图3所示.

现有的系统架构模式与节能算法存在普适性的问题主要表现在以下两点:

图3 Storm集群的基础架构

1)集群路径与节能算法存在普适性问题,流式处理集群在执行节能算法时需要对集群关键路径进行查找确定,集群关键路径发生改变则节能算法失效,需要重新查找集群关键路径,因此集群路径与节能算法存在普适性的问题.文献[25]通过采样确定Storm集群关键路径,并在集群路径不改变的前提下,通过将任务的整合合并,从而达到集群节能的目的.文献[19]也是通过采样确定Storm集群关键路径,同样在集群路径不变的前提下,针对数据处理的特性对集群工作节点进行降压调节,从而达到集群节能的目的.

2)集群自身与节能算法存在普适性问题,针对流式处理集群执行的节能算法往往只能作用于单一的平台,平台发生改变则节能算法失效,由于各流式处理平台的特性具有较大的差异,往往不同平台的节能算法大都针对自身平台的数据处理特性,因此集群自身与节能算法存在普适性的问题.例如Storm平台的数据处理与任务分配方式与Flink平台基本不同,作用于Storm平台的节能算法在Flink平台上完全失效.

3.3 现有系统与节能算法的服务质量与性能问题

针对现有集群执行节能算法存在性能与服务质量的问题,分别以现在分布式数据处理集群中最流行的批量数据处理模型与流数据处理模型为例进行分析,其中批量数据处理模型主要存在节能算法影响系统服务质量的问题,而流处理模型主要存在节能算法影响系统性能的问题.批量处理集群的基本功能为需要向上层应用提供数据处理及传输的服务,因此服务质量需要满足特定的QoS约束.批量处理集群基于软件方面调度的本质为对数据处理的资源进行分配,在不影响系统QoS约束的前提下,通过降低部分工作节点的能效,以达到节能的效果.

批量处理集群在执行节能算法情况下,与原系统未执行节能算法相比,集群在节能模式下,将更多地资源分配到更少地节点上,导致工作节点的压力增大负载变重,因此为集群QoS约束带来巨大的挑战.现有批量数据处理集群节能算法往往为了达到节能的目的而有意忽略QoS约束条件的影响,其中特别体现在商业界.用户与云计算服务提供商之间都会达成SLA(service-level agreement)协议,这导致批量数据处理集群节能的前提条件为需要满足QoS约束.现有批量处理集群方面的节能研究往往集中于数据可用性这一个方面,而忽视集群整体QoS约束保障方面的影响.

针对流式处理集群节能算法与系统性能的问题,流式大数据具有实时性、无限性、易失性、突发性、无序性及多样性等特征,其中最重要的是实时性,与集群性能直接相关.流式处理集群的基本功能为尽可能快的向上层应用提供数据信息,而流式大数据的实时性则需要受到系统性能的约束.

流式处理集群在执行节能算法情况下,一般需要通过调整部分工作节点的特性(如关闭部分节点、降低部分节点电压等)以达到节能的效果,与原系统未执行节能算法相比,集群进入节能状态后,调整部分工作节点的特性,势必会对系统性能造成一定的影响.流式数据处理集群为了达到节能的目的而忽略了流式大数据的实时性特征,其中特别体现在部分科研单位.现有研究并未提出公认关于集群节能算法与性能方面的协议,这导致现有流式处理集群节能研究大多只关注于降低集群能耗这一个方面,而忽视了对集群整体性能质量保障方面的分析.

4 未来的研究展望

针对现有分布式处理节能研究面临的问题与发展前景,结合目前部分学者已有的研究工作,现从五个方面对未来的发展进行探讨与展望:

4.1 适应节能的分布式处理体系结构研究

分布式处理集群在最初设计时仅考虑数据冗余设计、负载均衡算法及超额的资源供给策略而忽略了集群能耗的影响,导致分布式处理集群逐渐暴露出能耗利用率低下的问题.现有的研究成果大都集中于已有的数据处理体系结构,在此基础上对集群的某一方面进行改进达到节能的效果,而忽视对分布式处理集群的本质体系结构方面的改进及产生能耗的影响.因此,只有对新的、适应节能的分布式处理体系结构进行改进研究,才能从根源上解决现有集群存在能耗利用率低下的问题.新的适应节能的分布式处理体系结构需要对数据的分布模型、数据的处理模型、工作节点状态、硬件的基本结构、上层应用的数据访问规律及对集群服务质量与性能的影响等问题进行研究分析.

4.2 节能计算与集群数据处理相适应的研究

分布式集群数据处理为上层应用(如数据的分类、聚类等)提供服务.当上层应用发出需求信号时,资源的分配与任务的调度并没有考虑到由于集群执行节能算法工作节点的效率下降(如节点休眠、节点关闭等)带来的数据不可用问题,这容易引发数据在传输过程中出现阻塞问题.因此,研究集群分布式数据处理与节能计算相适应问题是未来一个主要的研究方向.可通过对集群实施节能计算与数据处理进行评估分析,确定该节能计算对系统数据处理的影响.此外,可通过设计适应节能的计算系统适配器、数据处理系统原数据模型以及节能模式下的数据处理系统等方法解决集群节能计算与数据处理相适应的问题.

4.3 节能计算与集群数据处理普适性的研究

分布式集群在进行节能计算时往往容易忽视集群数据处理与节能计算普适性的问题.集群的节能算法往往只作用于单一的平台,大都只是通过对该平台某一类问题进行分析,在避免该平台在节能过程中可能会遇到问题的前提下达到节能的效果.该类节能算法大都存在局限性,往往只能作用于单一平台甚至是某一情况下满足节能,严重影响了集群数据处理与节能计算普适性的问题.因此,研究集群数据处理与节能计算普适性的问题必然是未来一个重要的方向.可通过查找各类型平台(或同类型平台)之间存在的共同点,以此为出发点设计节能算法,这就大大降低了集群数据处理与节能计算普适性的问题.

4.4 集群执行节能算法的QoS约束保证研究

现有节能研究往往只集中于数据可用性一个方面,而忽视了集群整体QoS约束保障带来的影响.而分布式处理集群的基本功能是需要向上层应用提供数据处理及传输的服务,因此服务质量需要满足特定的QoS约束.对于减少节点能效(休眠、关闭等)的节能算法,会导致集群的QoS约束面临巨大挑战.因此需在集群实施节能算法时,进一步对QoS约束保障遇到的问题进行研究分析.集群实施节能算法数据的QoS约束保证问题,首先需要对用户的需求、任务处理以及资源分配状态进行分析建模,然后可通过数据匹配、最小服务质量保证等方法对任务执行的QoS约束进行保证.

4.5 集群执行节能算法的性能质量保证研究

已有研究在执行分布式处理节能计算时,大都忽视(或有意回避)了对集群性能问题的评估分析.然而有些分布式处理集群对性能的要求极高(如流式处理集群、交互处理偏流处理的集群等),执行节能算法就需要满足对集群性能质量的保证.对于降低集群性能以达到节能的效果,导致集群性能质量面临巨大的挑战.因此在进行分布式处理节能计算时,需要对性能质量保证遇到的问题进行进一步研究分析.可通过评估系统的整体性能,尽可能通过在不降低集群性能的前提下,设计相关的节能算法.也可通过提高集群的性能减少数据处理及传输的时间,通过评估集群时间、功率与能耗的关系设计相关的节能算法.

5 结论

随着大数据技术的不断发展,各种分布式处理平台应运而生,特别是批量处理平台与流式处理平台已运用到各个领域.然而分布式处理系统最初的设计理念并没有考虑到集群能耗的问题,随着数据量的急速增长,导致其低效率、高能耗的问题逐渐暴露出来.最新的研究表明,分布式处理系统产生的能耗占整个云计算中心能耗的27%∼40%,因此不管从降低能耗保护环境,还是从降低数据处理的运营成本的角度来看,研究分布式处理节能计算都具有广阔的应用前景与发展潜力.本文针对大规模的数据处理节能算法将其划分为流式数据处理、批量数据处理、图数据处理以及彼此交互的数据处理四种节能算法,并进行分析探讨,其中彼此交互的数据处理节能算法又可划分为偏向批的交互数据处理、偏向流的交互数据处理以及偏向图的交互数据处理三种节能算法,并进行综合的讨论分析,讨论了现有分布式处理架构与节能算法存在的一系列问题(如对集群服务质量的影响、对集群性能的影响等).最后,对适应节能的分布式处理体系结构、节能计算与集群数据处理的适应性、节能计算与集群数据处理的普适性、集群执行节能算法的QoS约束保证以及集群执行节能算法的性能质量保证五个方面进行了展望分析.

猜你喜欢
流式数据处理集群
2种6色流式细胞术试剂检测淋巴细胞亚群的性能比较
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
基于低频功率数据处理的负荷分解方法
流式大数据数据清洗系统设计与实现
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
海上小型无人机集群的反制装备需求与应对之策研究
一种无人机集群发射回收装置的控制系统设计
潜水推流式搅拌机的标准解读
Python与Spark集群在收费数据分析中的应用
勤快又呆萌的集群机器人