【技术实现步骤摘要】
一种处理大数据平台Spark数据分配不均衡的方法
本专利技术涉及在线集群资源调度
,尤其涉及一种处理大数据平台Spark数据分配不均衡的方法。
技术介绍
Spark是一个以可靠、高效、可伸缩的方式对大量数据进行分布式处理的内存计算框架。Spark集群主要的构件部署分为SparkClient、SparkContext、ClusterManager、Worker和Executor等,如图1所示。SparkClient用于用户提交应用程序到Spark集群,而SparkContext用于负责与ClusterManager进行通信,进行资源的申请、任务的分配和监控等,负责作业执行的生命周期管理。ClusterManager提供了资源的分配与管理,在不同的运行模式下,担任的角色有所不同,在Local、SparkStandalone等运行模式下由Master提供,在YARN运行模式下由ResourceManager提供,在Mesos运行模式下由MesosManager进行负责。当SparkContext对运行的作业进行划分并分配资源后,会把任务发送到Worker节点上的Executor进行运行。Spark的编程模型是弹性分布式数据集(ResilientDistributedDataset,RDD),它是MapReduce模型的扩展,在并行计算阶段高效的进行数据共享。Spark应用程序主要是基于RDD的一系列操作构成的作业,这些操作算子主要分为转换操作和行动操作,转换操作是延迟执行的,只有出现行动操作才触发作业的提交。在Spark作业调度中最重要的是DAGSched ...
【技术保护点】
1.一种处理大数据平台Spark数据分配不均衡的方法,其特征在于,所述方法包括步骤:(1)将Spark各Stage上一些任务设置为活动任务;(2)根据活动任务的元数据估计任务的剩余运行时间;(3)根据任务的剩余运行时间降序排列活动任务,将剩余运行时间最大的任务的可用数据块重新分配给剩余运行时间最小的任务;(4)更新任务的剩余运行时间,重复步骤(3)直到无可用的数据块被调度或者重新分配后任务的剩余运行时间少于其他任务的最大剩余运行时间。
【技术特征摘要】
1.一种处理大数据平台Spark数据分配不均衡的方法,其特征在于,所述方法包括步骤:(1)将Spark各Stage上一些任务设置为活动任务;(2)根据活动任务的元数据估计任务的剩余运行时间;(3)根据任务的剩余运行时间降序排列活动任务,将剩余运行时间最大的任务的可用数据块重新分配给剩余运行时间最小的任务;(4)更新任务的剩余运行时间,重复步骤(3)直到无可用的数据块被调度或者重新分配后任务的剩余运行时间少于其他任务的最大剩余运行时间。2.根据权利要求1所述的方法,其特征在于,将Spark各调度阶段上一些任务设置为活动任务,活动任务数量为m,m≤min(s,n),其中,s为集群中总CPU核数,n为RDD的分区数或调度阶段任务总数,即活动任务的数量不能超过集群中CPU核数、RDD的分区数或调度阶段任务总数中的最小值;活动任务在任务执行即将结束时不能主动停止运行,只有接收到停止命令消息时才能停止运行,该实现方式是为了将执行时间最长的任务的未处理数据块分配到其他任务执行。3.根据权利要求1所述的方法,其特征在于,MRFair每次最多选择一个任务进行分配,因为在一个任务中分割数据块并将其传输到其他任务占用了另一个已经完成的任务释放的空闲CPU资源,同时重新分配两个任务的效果没有只重新分配一个任务的效果好,重新分配一个任务使得该任务可以充分使用剩余的资源;MRFairMaster估计所有任务的剩余执行时间,并在检测时选择剩余时间最长的任务进行重新分配;Master要保证剩余时间足以计算调度计划,如果MRFair决定重新分配任务T中的可用数据块,则需要满足以下两个条件:(1)系统目前至少有一个CPU核是空闲的;(2)重新分配只有在任务T原来的执行时间大于重新分配之后的执行时间加上分配需要的额外时间开销才有意义;对于长时间执行的任务,数据倾斜的影响是非常严重的,重新分配任务的额外开销基本可以忽略不计。4.根据权利要求1所述的方法,其特征在于,用户提交作业后,刚开始只要存在未被调度的任务,MRFair调用传统ScheduleBackend模块调度分配任务;如果Master节点把所有的任务都调度分配完了,MRFair就激活MRFairWorker中的检测模块,对正在执行的任务基于预估的剩余运行时间值进行倾斜检测,如图2所示;如果任务的剩余运行时间值存在严重差异(即分割剩余任务是有价值的),报告该信息给MRFairMaster,并将该任务ID以及预估剩余运行时间值存入MRFairMaster节点中的哈希列表中,等待后续处理。5.根据权利要求1所述的方法,其特征在于,当Master节点根据任务的剩余运行时间降序排列活动任务时,需要将剩余运行时间最长的任务T1暂停运行,即MRFairMaster通知MRFairWorker暂停该任务的执行,并捕获其最后处理的输入数据的位置以及允许跳过先前已处理的输入数据;如果剩余运行时间最长的任务T1处于一种不可能或者很难停止的状态,那么该请求失败,Master节点要么重新选择一个剩余运行时间次长的任务T2并对该任务进行以上处理,或者如果这个剩余运行时间最长的任务T1是作业中的最后一个任务的情...
【专利技术属性】
技术研发人员:不公告发明人,
申请(专利权)人:田文洪,黄超杰,刘弘一,任小芹,何马均,叶宇飞,
类型:发明
国别省市:四川,51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。