一种实时数据流处理的任务分配方法及系统技术方案

技术编号:12565397 阅读:74 留言:0更新日期:2015-12-23 09:30
本发明专利技术公开了一种实时数据流处理的任务分配方法及系统,所述方法,包括:接收至少一个任务;根据资源平衡原则,将每个任务分配给集群中指定的若干工作机器。本发明专利技术通过将每个任务分配给指定的各工作机器,克服现有技术中实时数据处理中硬件资源分布不均的问题。

【技术实现步骤摘要】

本专利技术设及计算机领域,特别是设及一种实时数据流处理的任务分配方法及系 统。
技术介绍
在任务硬件资源分配中,若采用storm(分布式高容错的实时计算系统)进行实时 数据的处理,其默认是按照硬件资源序号方式排序分配硬件资源。例如,现有3台机器(C1、 C2和C3)的Storm集群,每台机器有3个端口硬件资源(P1、P2和P3)。有2个拓扑灯1和 T2)需要分配硬件资源,拓扑T1需要分配在两台机器的2个端口,拓扑T2需要分配在3台 机器的4个端口,此时,为拓扑T1分配硬件资源的结果如图1所示,为拓扑T2分配硬件资 源的结果如图2所示。 从图中可W清楚的看到,C1的硬件资源全部占用,而C3的硬件资源剩余较多。也 就是说,由于Storm统一按编号分配硬件资源,从而导致了一个集群中,硬件资源的分配不 均,有的机器硬件资源占满,而有的机器硬件资源还剩余很多。 因此,需要一种新的技术,用W解决在多任务的情况下,整个集群中的机器发生硬 件资源倾斜和大量的硬件资源分布不均,W及整个集群硬件资源紧张和硬件资源利用率低 等情况。
技术实现思路
阳〇化]鉴于现有技术的缺陷,本专利技术目的在于提供一种实时数据流处理的任务分配方法 及系统,用W解决现有多任务实时数据处理中硬件资源分布不均的问题。 为了解决上述技术问题,一方面,本专利技术提供一种实时数据流处理的任务分配方 法,包括: 接收至少一个任务; 根据资源平衡原则,将每个任务分配给集群中指定的若干工作机器。 进一步,根据资源平衡原则,将每个任务分配给集群中指定的若干工作机器,具体 包括: 为每个任务建立若干计算拓扑; 将所有计算拓扑平均的分配给指定的若干工作机器。 进一步,所述方法还包括: 为每个工作机器上建立若干工作进程,并使各工作机器上运行相同数量的工作进 程。 进一步,将每个任务分配给集群中指定的若干工作机器之后,还包括: 为每个工作机器配置执行分配的任务所需占用的硬件资源; 配置完成后,使每个工作机器根据所述配置执行分配的任务。 进一步,所述硬件资源包括内存资源、中央处理器资源、磁盘资源和/或缓存资 源。 进一步,为每个工作机器配置执行分配的任务所需占用的缓存资源时根据不同的 任务指定不同的缓存资源。 进一步,将任务分配给集群中指定的若干工作机器之前,还包括: 获取集群中每个工作机器的剩余资源权值,按照剩余资源权值由高到低的顺序进 行排序; 确定该任务需要占用的硬件资源; 根据所述排序和确定的该任务需要占用的硬件资源,选择剩余资源权值高的工作 机器作为指定的工作机器。 另一方面,本专利技术还提供一种实时数据流处理的任务分配系统,包括: 接收模块,用于接收至少一个任务; 分配模块,用于根据资源平衡原则,将每个任务分配给集群中指定的若干工作机 器上。 进一步,所述分配模块,具体用于为每个任务建立若干计算拓扑; 将所有计算拓扑平均的分配给指定的若干工作机器。 进一步,所述分配模块,还具体用于为每个工作机器上建立若干工作进程,并使各 工作机器上运行相同数量的工作进程。 进一步,所述系统还包括控制模块,用于为每个工作机器配置执行分配的任务所 需占用的各硬件资源; 配置完成后,使各工作机器根据所述配置执行分配的任务;所述硬件资源包括内 存资源、中央处理器资源、磁盘资源和/或缓存资源。 进一步,所述控制模块,还用于为每个工作机器配置执行分配的任务所需占用的 缓存资源时根据不同的任务指定不同的缓存资源。 进一步,所述分配模块,还用于将每个任务分配给集群中指定的若干工作机器时, 获取集群中每个工作机器的剩余资源权值,按照剩余资源权值由高到低的顺序进行排序; 确定该任务需要占用的硬件资源; 根据所述排序和确定的该任务需要占用的硬件资源,选择剩余资源权值高的工作 机器作为指定的工作机器。 本专利技术有益效果如下:本专利技术通过在接收一个或多任务时,根据资源平衡原则,将 每个任务分配给指定的各工作机器,克服现有技术中实时数据处理中硬件资源分布不均的 问题。【附图说明】 图1是现有技术中需要二个硬件资源的一个任务分配结果示意图; 图2是现有技术中分别需要二个和四个硬件资源的二个任务分配结果示意图; 图3是本专利技术实施例中一种实时数据流处理的任务分配方法的流程图; 图4是本专利技术实施例中分别需要二个和四个硬件资源的二个任务分配结果示意 图; 图5是本专利技术实施例中一种实时数据处理中的任务分配系统的结构示意图。【具体实施方式】 为了解决现有多任务实时数据处理中硬件资源分布不均的问题,本专利技术提供了一 种实时数据流处理的任务分配方法及系统,W下结合附图W及实施例,对本专利技术进行进一 步详细说明。应当理解,此处所描述的具体实施例仅仅用W解释本专利技术,并不限定本专利技术。 W42] 实施例一 如图3所示,本专利技术实施例提供一种实时数据流处理的任务分配方法,包括: S301,接收至少一个任务;其中任务包括实时数据采集任务、实时数据入库任务W 及实时计算任务等等。至少一个任务包括一个任务或者一个W上的多任务。 S302,根据资源平衡原则,将每个任务分配给集群中指定的各工作机器,并使各工 作机器执行分配的任务。 例如,在Storm上完成实时计算任务,本步骤首先需要建立一些用于完成该实时 计算任务的计算拓扑(Topology)。然后将每个任务分配给集群中指定的各工作机器,也即 是说将建立的若干个计算拓扑平均的分配给集群中指定的各工作机器。最后,各工种机器 中的管理者模块(Supervisor)根据分配的计算拓扑,启动若干工种进程(Worker)并执行 分配的计算拓扑(任务);并尽量使各工作机器上运行的工作进程数量大致相同。 本专利技术实施例中方法,通过在接收一个或多任务时,将每个任务分配给指定的各 工作机器,克服现有技术中按照编号方式分配硬件资源带来的硬件资源分布不均的问题。 其中S302中,将每个任务分配给集群中指定的若干工作机器时,获取集群中每个 工作机器的剩余资源权值,按照剩余资源权值由高到低的顺序进行排序; 确定该任务需要分配的工作机器数量; 根据所述排序和确定的工作机器数量,选择剩余资源权值高的工作机器作为指定 的工作机器。例如,集群中有4个工作机器,按照剩余资源权值由高到低的顺序排序的结果 是A、B、C、D,该任务需要分配3台工作机器,则将该任务分配给工作机器A、B和C。 采用本专利技术实施例中方法,管理员可W手动的分配资源而不是由框架按照自己的 编号方式分配资源,使得每个任务的资源分配合理。 现有技术中,由于各工作机器中执行的相应计算拓扑时,无法指定具体占用的硬 件资源的大小数量等,从而造成了整个集群资源紧张W及资源利用率低等情况。为了解决 该技术问题,本专利技术实例中方法在S302之后还包括为各工作机器中运行的Worker配置各 种硬件资源,具体为: 为每个工作机器配置执行分配的任务所需占用的各种硬件资源;配置完成后,使 各工作机器根据所述配置执行所述任务。 其中,各种硬件资源具体包括内存资源、中央处理器资源、磁盘资源和/或缓存资 源。 阳05引 W下WStorm为例,详细说明本专利技术实施例中方法: 为了使说明清楚简洁,将现有的Storm的任务分配方法设置为默认调度方法,将 上述本专利技术实施例中任务方法设置为自定义调本文档来自技高网...

【技术保护点】
一种实时数据流处理的任务分配方法,其特征在于,包括:接收至少一个任务;根据资源平衡原则,将每个任务分配给集群中指定的若干工作机器。

【技术特征摘要】

【专利技术属性】
技术研发人员:陶长连
申请(专利权)人:青岛海尔智能家电科技有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1