异构Spark集群数据倾斜修正调度策略*
2022-04-21修位蓉
计算机工程与科学 2022年4期
关键词:作业
卞 琛,修位蓉,于 炯
(1广东金融学院互联网金融与信息工程学院,广东 广州 510521;2.广州商学院信息技术与工程学院,广东 广州 511363;3新疆大学信息科学与工程学院,新疆 乌鲁木齐 830046)
1 引言
随着非易失内存的发展和高复杂度计算需求的提升,能够较好地支持迭代计算和数据密集型应用的内存计算框架[1-3]已经得到了广泛的应用。分布式内存计算框架Spark[4,5]作为其中的典型代表,利用分布式集群的节点,在内存对数据进行高效处理和临时缓存,具有高性能、高可靠和低延迟的特性。传统基于磁盘的分布式计算框架MapReduce[6]将应用简单划分为多个Map和Reduce操作,磁盘I/O的开销很大。与之不同的是,Spark将作业基于操作间的前后关系转化成DAG图,并根据处理的操作类型不同(宽依赖操作或窄依赖操作)划分成多个计算阶段(stage),各阶段串行处理,阶段内部由多个任务(task)并行处理。作业执行时间取决于所有阶段执行时间之和,若能够尽可能减少每个阶段的执行时间,则最终整个作业的执行时间就能够得到优化。由于每个阶段内的任务需要同步,完成时长取决于执行时间最长的任务,让每个任务都尽快完成才成达到优化目标,因此并发任务数(并行度)和计算量分配是影响任务执行速度的关键因素。
Spark框架的任务并行度是分布式内存计算环境中各阶段内部任务执行的并发程度。任务并行度包含物理并行度和逻辑并行度:物理并行度是集群资源限定下能够承载的最大并发任务个数,由注册的工作节点数及每个节点贡献的CPU核心数确定;……
登录APP查看全文
