异构环境下Spark动态资源调度策略研究
2021-02-14吴仁彪贾云飞
吴仁彪,刘 备,贾云飞
(中国民航大学天津市智能信号与图像处理重点实验室,天津 300300)
传统的单机处理模式不再满足越来越多的机构处理其海量数据,Spark 以内存计算、通用和可扩展性等优势成为目前主流的大数据计算框架[1]。集群硬件设备的不断更新、损耗及计算需求的扩大,会导致Spark 集群中的节点性能差异较大,使得集群异构。异构是指集群节点因CPU 等不同硬件的性能差异而导致其自身处理能力出现差异。如果仍用现有的资源调度策略,在集群异构且资源约束的环境下会导致集群节点的负载失衡,影响作业执行效率。Spark 资源调度策略是影响集群执行效率的关键之一,因此,研究Spark集群异构环境下高效、合理的资源调度策略具有重要意义。目前,国内外针对资源调度优化的研究主要着眼点于以下两方面。
(1)通过优化资源调度,提高集群的运行效率是研究的热点之一。杨志伟等[2]在Spark 默认调度策略基础上,通过分布式集群监视系统Ganglia 获取异构集群节点负载及资源利用率,动态调整节点的优先级,提高了集群的执行效率。Cheng 等[3]提出一种动态资源下考虑作业完成期限的Hadoop 作业调度(RDS,resource and deadline-aware Hadoop job scheduler)算法,RDS 通过考虑未来资源的动态变化,减少作业未在截止时间完成造成的损失。冯兴杰等[4]通过建立异构Hadoop 集群节点硬件参数和动态信息两个节点性能评价指标,度量节点优先级并改进Hadoop 资源管理器的公平调度算法,提高了Hadoop 集群的执行效率。胡亚红等[5]将文献[4]的方法运用到异构Spark 集群的默认调度策略中,提出了一种基于节点优先级的Spark 动态自适应调度算法,缩短了Spark 作业的执行时间。……
