《云计算平台中的任务处理系统、设备及方法.pdf》由会员分享,可在线阅读,更多相关《云计算平台中的任务处理系统、设备及方法.pdf(15页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103347055 A (43)申请公布日 2013.10.09 CN 103347055 A *CN103347055A* (21)申请号 201310244431.8 (22)申请日 2013.06.19 H04L 29/08(2006.01) G06F 9/50(2006.01) (71)申请人 北京奇虎科技有限公司 地址 100088 北京市西城区新街口外大街 28 号 D 座 112 室 (德胜园区) 申请人 奇智软件 (北京) 有限公司 (72)发明人 何锐邦 唐会军 (74)专利代理机构 北京华沛德权律师事务所 11302 代理人 刘丽君 (54) 发明。
2、名称 云计算平台中的任务处理系统、 设备及方法 (57) 摘要 本发明公开了云计算平台中的任务处理系 统、 设备及方法, 其中, 云计算平台中的任务处理 设备包括 : 文件信息获取器, 被配置为从存储任 务数据文件的存储节点中获取各任务数据文件的 信息, 并基于各任务数据文件的信息来确定各任 务数据文件的编号 ; 节点信息确定器, 被配置为 获取任务执行节点的信息 ; 任务执行节点的信息 包括任务执行节点的数量以及任务执行节点的编 号 ; 以及任务分配器, 被配置为根据各任务数据 文件的编号和任务执行节点的信息, 将任务数据 文件均匀分配到对应的任务执行节点进行处理, 其中将相邻编号的任务数据。
3、文件分配给不同的任 务执行节点。 通过本发明, 可以降低由于某个任务 执行节点处理数据量很大而拖慢整个计算任务的 概率。 (51)Int.Cl. 权利要求书 2 页 说明书 11 页 附图 1 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书11页 附图1页 (10)申请公布号 CN 103347055 A CN 103347055 A *CN103347055A* 1/2 页 2 1. 一种云计算平台中的任务处理设备, 包括 : 文件信息获取器, 被配置为从存储任务数据文件的存储节点中获取各任务数据文件的 信息, 并基于各任务数据文件的信息来确定各任务数。
4、据文件的编号, 其中各任务数据文件 的编号与任务数据文件产生的先后顺序相关 ; 节点信息确定器, 被配置为获取任务执行节点的信息 ; 所述任务执行节点的信息包括 所述任务执行节点的数量以及所述任务执行节点的编号 ; 以及 任务分配器, 被配置为根据各任务数据文件的编号和任务执行节点的信息, 将任务数 据文件均匀分配到对应的任务执行节点进行处理, 其中将相邻编号的任务数据文件分配给 不同的任务执行节点, 以使得每个任务执行节点上处理相同或基本相同数量的任务数据文 件, 而且同一任务执行节点上处理的任务数据文件的编号呈等差数列分布或者基本等差数 列分布。 2. 如权利要求 1 所述的云计算平台中的。
5、任务处理设备, 还包括 : 取模运算的结果计算器, 被配置为以任务执行节点的数量为模数, 对任务数据文件的 编号进行取模运算 ; 所述任务分配器被配置为根据所述取模运算的结果计算器的运算结果和任务执行节 点的信息, 将任务数据文件均匀分配到对应的任务执行节点进行处理。 3. 如权利要求 2 所述的云计算平台中的任务处理设备, 所述任务分配器被配置为根据 取模运算的结果与各个任务执行节点的编号进行匹配, 如果某任务数据文件的编号取模运 算结果与某任务执行节点的编号相等, 则将该任务数据文件分配到该任务执行节点进行处 理。 4. 如权利要求 1-3 中任一个所述的云计算平台中的任务处理设备, 其中。
6、 : 各任务执行节点的编号为从 0 到 N-1 的连续整数, 其中, N 为任务执行节点的数量 ; 各任务数据文件的编号为连续整数。 5. 如权利要求 1-4 中任一个所述的云计算平台中的任务处理设备, 其中各任务数据文 件的信息包括各任务数据文件的标识信息, 所述任务数据文件的标识信息中包含有任务数 据文件的编号, 其中, 所述任务数据文件的编号为按照任务数据文件产生的先后顺序进行 的连续编号 ; 所述文件信息获取器被配置为从各任务数据文件的信息中获取各任务数据文件的标 识信息, 并从各个任务数据文件的标识信息中提取各个任务数据文件的编号。 6. 如权利要求 1-4 中任一个所述的云计算平台。
7、中的任务处理设备, 其中各任务数据文 件的信息包括各任务数据文件的标识信息以及各任务数据文件产生的先后顺序信息, 所述 文件信息获取器被配置为从各任务数据文件的信息中获取各任务数据文件的标识信息以 及各任务数据文件产生的先后顺序信息, 按照所述先后顺序信息对各任务数据文件进行连 续编号。 7. 一种云计算平台, 包括 : 存储节点, 被配置为存储任务数据文件 ; 任务分配节点, 包括如权利要求1至6任一项所述的云计算平台的任务处理设备 ; 以及 任务执行节点, 被配置为根据任务处理设备的分配结果, 从存储节点下载任务数据文 件, 并进行处理。 权 利 要 求 书 CN 103347055 A 。
8、2 2/2 页 3 8. 一种云计算平台中的任务处理方法, 包括 : 从存储任务数据文件的存储节点中获取各任务数据文件的信息, 并基于各任务数据文 件的信息来确定各任务数据文件的编号, 其中各任务数据文件的编号与任务数据文件产生 的先后顺序相关 ; 获取任务执行节点的信息 ; 所述任务执行节点的信息包括所述任务执行节点的数量以 及所述任务执行节点的编号 ; 以及 根据各任务数据文件的编号和任务执行节点的信息, 将任务数据文件均匀分配到对应 的任务执行节点进行处理, 其中将相邻编号的任务数据文件分配给不同的任务执行节点, 以使得每个任务执行节点上处理相同或基本相同数量的任务数据文件, 而且同一任。
9、务执行 节点上处理的任务数据文件的编号呈等差数列分布或者基本等差数列分布。 9. 如权利要求 8 所述的云计算平台中的任务处理方法, 还包括 : 以任务执行节点的数量为模数, 对任务数据文件的编号进行取模运算 ; 所述根据各任务数据文件的编号和任务执行节点的信息, 将任务数据文件均匀分配到 对应的任务执行节点进行处理, 包括 : 根据所述取模运算的结果计算器的运算结果和任务执行节点的信息, 将任务数据文件 均匀分配到对应的任务执行节点进行处理。 10. 如权利要求 9 所述的云计算平台中的任务处理方法, 所述根据所述取模运算的结 果计算器的运算结果和任务执行节点的信息, 将任务数据文件均匀分配。
10、到对应的任务执行 节点进行处理, 包括 : 根据取模运算的结果与各个任务执行节点的编号进行匹配, 如果某任务数据文件的编 号取模运算结果与某任务执行节点的编号相等, 则将该任务数据文件分配到该任务执行节 点进行处理。 权 利 要 求 书 CN 103347055 A 3 1/11 页 4 云计算平台中的任务处理系统、 设备及方法 技术领域 0001 本发明涉及云计算领域, 具体涉及云计算平台中的任务处理技术领域。 背景技术 0002 云计算 (Cloud Computing) 是一种基于互联网的计算方式, 是分布式计算技术的 一种。 云计算技术的基本原理是利用网络将庞大的计算处理过程自动分拆成。
11、若干较小的子 过程, 再交由多部服务器所组成的庞大系统经搜寻、 计算分析之后将处理结果回传。 云计算 系统能够在短时间内处理大量的网络计算, 如能够在数秒之内处理数以千万计甚至亿计的 信息, 使得云计算技术成为除了超级计算机之外的又一种能够在短时间处理大量数据的途 径和方式。随着计算机硬件处理能力的提高和虚拟化技术的发展, 构建以虚拟化技术为基 础的云服务平台, 可以有效地扩大硬件的容量, 提高资源利用率, 简化软件配置过程, 进而 降低企业运行和维护计算机软硬件的成本。 0003 在云计算平台中, 共享的软硬件资源和信息可以按需提供给计算机和其他设备。 因平台的计算任务分布在大量计算机构成的。
12、资源池上, 使各种应用系统能够根据需要获取 计算力、 存储空间和信息服务, 因此, 可以将提供资源的网络看作是 “云” ,“云” 中的资源在 使用者看来是可以无限扩展的, 并且可以随时获取, 按需使用, 随时扩展。这种特性经常被 称为像水电一样使用 IT 基础设施。在云计算平台的一种功能模型中, 还可以依照实现功能 的不同将云计算平台划分为若干功能集群, 每个功能集群中都包括有若干个用于计算的功 能节点。如在一种云计算平台的功能模型中, 可以将实现计算任务存储的功能节点划分为 一个存储集群, 将实现具体的任务计算功能的功能节点划分为一个计算集群, 而一个云计 算平台, 可以包含若干个上述存储集。
13、群和若干个计算集群, 以及其他必要的功能集群和用 户接口。 0004 在上述云计算平台模型中, 具体实现一项云计算任务时, 先接收和存储任务数据 文件, 将任务数据文件存储到各可利用的存储集群的存储节点, 再将各项任务文件给配给 计算集群的计算节点, 由计算节点进行计算处理, 并于处理后返回结果。 由于在云计算平台 中进行计算的输入数据的数据量常常比较大, 并且往往呈现一定程度的不均匀数据分布, 即某些文件数据量非常大, 而另外一些文件的数据量则比较小, 而传统的任务处理方式常 常会造成各计算节点的计算量不均匀, 使得处理任务数据文件的节点的计算时间比较长, 而平台中得到平台计算结果, 往往需。
14、要同时利用若干处理节点输出的计算结果, 而任务处 理不能均匀分布于每个接受计算任务的计算节点, 往往会拖慢整个任务的处理速度。 发明内容 0005 鉴于上述问题, 提出了本发明以便提供一种克服上述问题或者至少部分地解决上 述问题的云计算平台中的任务处理系统和相应的云计算平台中的任务处理设备及方法。 0006 依据本发明的一个方面, 提供了一种云计算平台中的任务处理设备, 包括 : 文件信 息获取器, 被配置为从存储任务数据文件的存储节点中获取各任务数据文件的信息, 并基 说 明 书 CN 103347055 A 4 2/11 页 5 于各任务数据文件的信息来确定各任务数据文件的编号, 其中各任。
15、务数据文件的编号与任 务数据文件产生的先后顺序相关 ; 节点信息确定器, 被配置为获取任务执行节点的信息 ; 该任务执行节点的信息包括该任务执行节点的数量以及该任务执行节点的编号 ; 以及任务 分配器, 被配置为根据各任务数据文件的编号和任务执行节点的信息, 将任务数据文件均 匀分配到对应的任务执行节点进行处理, 其中将相邻编号的任务数据文件分配给不同的任 务执行节点, 以使得每个任务执行节点上处理相同或基本相同数量的任务数据文件, 而且 同一任务执行节点上处理的任务数据文件的编号呈等差数列分布或者基本等差数列分布。 0007 根据本发明的另一方面, 提供了一种一种云计算平台, 包括 : 存储。
16、节点, 被配置为 存储任务数据文件 ; 任务分配节点, 包括根据本发明的云计算平台的任务处理设备 ; 以及 任务执行节点, 被配置为根据任务处理设备的分配结果, 从存储节点下载任务数据文件, 并 进行处理。 0008 根据本发明的又一个方面, 提供了一种云计算平台中的任务处理方法, 包括 : 从 存储任务数据文件的存储节点中获取各任务数据文件的信息, 并基于各任务数据文件的信 息来确定各任务数据文件的编号, 其中各任务数据文件的编号与任务数据文件产生的先后 顺序相关 ; 获取任务执行节点的信息 ; 所述任务执行节点的信息包括所述任务执行节点的 数量以及所述任务执行节点的编号 ; 以及根据各任务。
17、数据文件的编号和任务执行节点的信 息, 将任务数据文件均匀分配到对应的任务执行节点进行处理, 其中将相邻编号的任务数 据文件分配给不同的任务执行节点, 以使得每个任务执行节点上处理相同或基本相同数量 的任务数据文件, 而且同一任务执行节点上处理的任务数据文件的编号呈等差数列分布或 者基本等差数列分布。 0009 根据本发明的云计算平台以及其中的任务处理设备及方法, 可以根据各个任务数 据文件的编号以及各个任务执行节点的编号、 数量等信息, 将各个任务数据文件均匀分配 到对应的任务执行节点进行处理。具体的, 可以将相邻编号的任务数据文件分配给不同的 任务执行节点, 以使得每个任务执行节点上处理相。
18、同或基本相同数量的任务数据文件, 而 且同一任务执行节点上处理的任务数据文件的编号呈等差数列分布或者基本等差数列分 布。这样, 从文件数上看, 每个任务执行节点下载的数目是平均的 ; 从文件编号分布情况上 看, 每个任务执行节点都会去每个文件编号区间下载文件, 此时如果有某些文件编号区间 的数据量特别大, 那么这些区间的数据就会平摊到每个任务执行节点。 因此, 从概率的角度 上保证了数据会均匀分配到每个任务执行节点, 降低由于某个任务执行节点处理数据量很 大而拖慢整个计算任务的概率。 0010 上述说明仅是本发明技术方案的概述, 为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予以实。
19、施, 并且为了让本发明的上述和其它目的、 特征和优点能够 更明显易懂, 以下特举本发明的具体实施方式。 附图说明 0011 通过阅读下文优选实施方式的详细描述, 各种其他的优点和益处对于本领域普通 技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的, 而并不认为是对本发明 的限制。而且在整个附图中, 用相同的参考符号表示相同的部件。在附图中 : 0012 图 1 示出了根据本发明一个实施例的云计算平台的示意图 ; 以及, 说 明 书 CN 103347055 A 5 3/11 页 6 0013 图 2 示出了根据本发明一个实施例的云计算平台中的任务处理方法的流程图。 具体实施方式 001。
20、4 下面将参照附图更详细地描述本公开的示例性实施例。 虽然附图中显示了本公开 的示例性实施例, 然而应当理解, 可以以各种形式实现本公开而不应被这里阐述的实施例 所限制。 相反, 提供这些实施例是为了能够更透彻地理解本公开, 并且能够将本公开的范围 完整的传达给本领域的技术人员。 0015 为了解决现有技术中由于数据量分布不均 (如热门数据区间数据量膨胀) 带来的 某个或某些任务执行节点运算量过大, 从而导致拖慢了整体计算速度的问题, 在本发明实 施例中提出了一种云计算平台中的任务处理系统, 下面就对该系统的具体的实现方式进行 详细地介绍。 0016 参见图 1, 图 1 示出了根据本发明一个。
21、实施例的云计算平台系统, 该系统可以包括 存储节点 101、 任务分配节点 102, 以及任务执行节点 103。其中, 任务分配节点 102 包括云 计算平台中的任务处理设备 104, 具体的云计算平台中的任务处理设备 104 包括文件信息 获取器 105, 节点信息获取器 106, 以及任务分配器 107。在该系统中, 可以包含一个或两个 以上任务执行节点, 任务执行节点 103 可以是云计算平台中执行具体计算任务的计算机, 虚拟机或应用程序等。下面结合具体的任务处理, 详细地介绍本系统。 0017 该系统中的存储节点 101 用于存储任务数据文件, 任务数据文件可以是云计算平 台的计算任务。
22、中使用的包含源数据的文件。在存储节点 101 中, 除了可以存储任务数据文 件本身之外, 还可以存储任务数据文件的各种相关信息, 如任务数据文件的标识信息 (例如 名称、 ID) 、 任务数据文件的编号、 各个任务数据文件在产生时的先后顺序信息等。此外, 对 于不同的云计算平台, 或者不同的运算需求, 任务数据文件可以是一次性使用的任务数据 文件, 也可以是多次循环使用的任务数据文件。 例如在一些需要循环计算的环境下, 完成一 次计算量所输出的数据, 同时又是下一次计算的输入, 如在应用于天气预测的云计算平台, 对一个时段进行预测计算所输出的数据, 往往还会被用作对下一个时段进行预测的计算过 。
23、程中的输入数据的一部分。 0018 需要说明的是, 任务数据文件的编号可以用于标识任务数据文件, 同时也可以作 为任务分配节点 102 对各任务数据文件进行分配的依据信息之一。任务数据文件的编号 的获取可以有多种实现方式。例如, 其中一种方式下, 由于存储节点 101 在保存各个任务 数据文件时, 一般可以根据任务数据文件产生的先后顺序, 为各个任务数据文件进行编号, 并可以将具体的编号添加到任务数据文件的名称或者 ID 等标识信息中。例如, 先后产生 了三个任务数据文件, 则这三个任务数据文件的名称可能分别为 part-00000、 part-00001、 part-00002 等, 因此,。
24、 可以直接从各个任务数据文件的名称或者 ID 等标识信息中提取出各 个任务数据文件的编号。为了获得最好的分配结果, 各相邻的任务数据文件的编号可以为 连续整数, 其中, 所谓相邻的任务数据文件是指在产生的先后顺序上相邻。 0019 与前面提到的存储节点101耦接的是任务分配节点102, 任务分配节点102一方面 从存储节点101获取各任务数据文件的信息, 另一方面从任务执行节点103获取信息, 然后 确定用于执行本次计算任务的各个执行节点 103, 进而根据各任务数据文件的编号和执行 本次计算任务的任务执行节点 103 的信息, 将任务数据文件均匀分配到对应的任务执行节 说 明 书 CN 10。
25、3347055 A 6 4/11 页 7 点 103 进行处理。 0020 具体而言, 任务分配节点 102 包括任务处理设备 104, 该任务处理设备 104 具体包 括文件信息获取器 105、 节点信息获取器 106, 以及任务分配器 107。 0021 首先, 文件信息获取器 105 耦接到存储节点 101。文件信息获取器 105 从存储节 点 101 获取各任务数据文件的信息, 并基于各任务数据文件的信息来确定各任务数据文件 的编号, 其中各任务数据文件的编号与任务数据文件产生的先后顺序相关。 在具体实现时, 文件信息获取器 105 从存储节点 101 获得的任务数据文件的信息有多种情。
26、况 : 0022 例如, 文件信息获取器105可以从存储节点101获得任务数据文件的标识信息 (例 如名称、 ID 等) 。这种信息主要用于后续在任务处理设备 104 确定出将某个任务数据文件 分配给某个任务执行节点 103 之后, 将该任务数据文件的标识信息发送给该任务对应的任 务执行节点 103, 任务执行节点 103 就可以根据该标识信息, 从存储节点 101 中请求下载对 应的任务数据文件, 并进行后续的计算处理。 0023 又例如, 文件信息获取器 105 可以从存储节点 101 获取到各个任务数据文件的编 号, 以便作为后续进行任务分配的计算依据。具体在文件信息获取器 105 获取。
27、任务数据文 件的编号时, 可以有多种实现方式。例如, 其中一种方式下, 由于存储节点 101 在保存各个 任务数据文件时, 一般可以根据任务数据文件产生的先后顺序, 为各个任务数据文件进行 编号 (例如可能是按照先后顺序进行从小到大的编号, 或者也可以进行从大到小的编号, 等 等, 任务数据文件的编号一般可以是连续的) , 并将具体的编号添加到任务数据文件的名称 或者 ID 等标识信息中。例如, 先后产生了三个任务数据文件, 则这三个任务数据文件的名 称可能分别为 part-00000、 part-00001、 part-00002 等, 因此, 可以由文件信息获取器 105 直接从各个任务数。
28、据文件的名称或者 ID 等标识信息中提取出各个任务数据文件的编号。 0024 当然, 在实际应用中, 存储节点 101 可能并没有在任务数据文件的标识信息中体 现各个任务数据文件的编号, 或者标识信息中体现的编号并不符合本发明实施例中的计算 需要, 例如, 相邻的任务数据文件的编号不能体现从小到大连续编号等规律性, 等等。在这 种情况下, 还可以由文件信息获取器 105 从存储节点 101 中获取到各个任务数据文件在产 生时的先后顺序信息 (存储节点101可能会以其他形式来保存这种顺序关系) , 然后, 由文件 信息获取器 105 按照先后顺序信息, 对各个任务数据文件进行连续的编号。 002。
29、5 当然, 在这种由文件信息获取器105进行编号的情况下, 还可以同时保存各个任务 数据文件的标识信息与编号之间的对应关系。例如, 从存储节点 101 中获取到了三个任务 数据文件, 名称分别为 partA、 partB、 partC, 其产生的先后顺序为 partA-partB-partC, 则文件信息获取器 105 可以将这三个文件编号为 0, 1, 2, 并记录 partA 与 0、 partB 与 1、 partC与2之间的对应关系。 这样, 假设最终确定出需要将编号为0的任务数据文件分配到 某任务执行节点, 则就可以将该编号 0 对应的名称 partA 发送给该任务执行节点 103,。
30、 由该 任务执行节点 103 根据该名称向存储节点 101 请求下载对应的任务数据文件并进行处理。 当然, 文件信息获取器 105 也可以将编号与文件标识之间的对应关系发送到存储节点 101 进行保存, 这样, 当确定出需要将某编号的任务数据文件分配到某任务执行节点 103 之后, 就可以将该任务数据文件的编号发送给该任务执行节点 103, 由该任务执行节点 103 根据 该任务数据文件的编号向存储节点 101 请求下载对应的任务数据文件, 存储节点 101 接收 到下载请求之后, 可以根据之前保存的文件编号与标识之间的对应关系, 确定出请求下载 说 明 书 CN 103347055 A 7 。
31、5/11 页 8 的文件的标识, 并向任务执行节点返回该标识对应的任务数据文件。 0026 此外, 任务分配节点 102 中的文件信息获取器 105 还可以从存储节点 101 获取任 务数据文件, 以便于后续直接提供给任务执行节点 103, 或者通过任务分配器 107 提供给任 务执行节点103。 当然, 如果任务分配节点102没有从存储节点101获得任务数据文件并提 供给任务分配节点 103 也是可以行的, 后续任务执行节点 103 可以根据任务分配节点 102 提供的其他信息 (如前文提到的任务数据文件的标识信息或编号) , 直接从存储节点 101 下 载对应的任务数据文件。 0027 文。
32、件信息获取器 105 除了与存储节点 101 耦接外, 还与任务分配器 107 耦接, 在文 件信息获取器 105 在从存储节点 101 获得前文提到的那些信息后, 便将这些信息提供给任 务分配器 107。 0028 一方面, 任务分配节点 102 通过上面提到的文件信息获取器 105 从存储节点 101 获得任务数据文件的信息。 另一方面, 任务分配节点102通过节点信息确定器106获取与执 行节点 103 相关的信息。具体而言, 文件信息获取器 105 获取的任务执行节点的信息包括 任务执行节点 103 的数量以及任务执行节点的编号, 例如可以通过列表等形式维护集群中 的任务执行节点的信息。
33、, 包括集群中存在多少个任务执行节点, 以及各个任务执行节点的 编号, 等等。 并且当某任务节点退出集群或者新加入集群时, 都可以重新对任务执行节点进 行编号, 并对列表进行更新, 使得文件信息获取器 105 能够获取到最新的任务执行节点 103 的信息。 当然, 在实际应用中, 用户可能会从众多任务执行节点中选择出一部分用于处理当 前的一批任务数据文件, 此时, 节点信息确定器 106 可以根据用户选择的情况, 确定出任务 执行节点的数量。另外, 节点信息确定器 106 还可以对各个任务执行节点进行编号, 其中, 假设任务执行节点的数量为N, 则各个任务节点的编号可以是从0到N-1的连续整数。
34、。 再例 如, 节点信息确定器 106 可以给任务执行节点 103 发查询请求, 然后通过执行节点 103 的响 应获得任务执行节点的数量、 编号等信息, 还可以获得各任务执行节点 103 的当前状态, 如 是否可用等。 0029 节点信息确定器 106 将获取到的任务执行节点 103 的信息也提供给任务分配器 107。至此, 任务分配器 107 既从文件信息获取器 105 获得了任务数据文件的信息 (如任务 数据文件的编号) , 又从节点信息确定器 106 获得了任务节点 103 的信息, 进而就可以根据 各任务数据文件的编号和任务执行节点的信息, 将任务数据文件均匀分配到对应的任务执 行节。
35、点进行处理。 0030 任务分配器 107 具体在分配时, 可以将相邻编号的任务数据文件分配给不同的任 务执行节点 103, 这样, 可以尽量使得数据量相似的任务数据文件分配到不同的任务执行节 点上执行, 避免某个任务执行节点 103 的负荷过大。当然, 同时还可以使得各个任务执行节 点 103 上分配的任务数据文件的数量相同或者基本相同, 并且同一任务执行节点上处理的 任务数据文件的编号呈等差数列分布或者基本等差数列分布。 其中, 所谓的基本相同是指, 不同任务节点上分配的任务数据文件的数量之差不超过一定的阈值 (例如不超过 1) 。所谓 的基本等差数列分布是指, 就是与等差数列分布类似, 。
36、如果将分配到同一任务执行节点上 的任务数据文件的编号按照升序排列, 这样可以组成一个数列, 从该数列的第二项起, 每一 项与它的前一项的差等于同一个常数, 则该序列称为等差序列, 而对于基本等差序列而言, 也就是说, 每一项与它的前一项的差可能不是同一个常数, 但是各个差值之间的差距小于 说 明 书 CN 103347055 A 8 6/11 页 9 某阈值 (例如不超过 1) 。通过这种方式, 可以使得各个任务执行节点上的负载更为均衡。 0031 在具体进行分配时, 可以有多种具体的实现方式。 例如, 按照编号由小到大的顺序 对各个任务数据文件进行排列, 同时, 按照编号由小到大的顺序对各个。
37、任务执行节点进行 排列 ; 之后, 分别为各个任务数据文件分配对应的任务执行节点, 并进行记录。其中, 对于 当前待分配的任务数据文件, 首先根据记录查看其上一个任务数据文件被分配的任务执行 节点的编号 n, 然后将编号为 n+1 的任务执行节点分配给该任务数据文件。需要说明的是, 对于任务执行节点, 假设任务执行节点的数量为 N, 编号为从 0 到 N-1, 在进行 i+1 运算过程 中, 当 n=N-1 时, n+1 结果回到 0。也就是说, 假设 N=3, 则三个任务执行节点的编号分别为 0, 1, 2, 此时, 如果上一个任务数据文件被分配的任务执行节点的编号为 2, 则为当前任务数 。
38、据文件分配的应该是编号为 0。 0032 又例如, 为了提高实现的效率, 还可以在任务分配器 107 中增设取模运算的结果 计算器。取模运算的结果计算器具体以任务执行节点 103 的数量为模数, 对任务数据文件 的编号进行取模运算。这样, 任务分配器 107 就可以根据取模运算的结果以及任务执行节 点的信息, 将任务数据文件均匀分配到对应的任务执行节点 103 进行处理, 从而达到 “将相 邻编号的任务数据文件分配给不同的任务执行节点, 以使得每个任务执行节点上处理相同 或基本相同数量的任务数据文件, 而且同一任务执行节点上处理的任务数据文件的编号呈 等差数列分布或者基本等差数列分布” 的目的。
39、。 0033 假设任务数据文件的编号为 i, 任务执行节点的数量为 N, 则所谓的取模运算就是 分别针对各个任务数据文件计算 (i mod N) 的结果。在针对某任务数据分配文件计算出取 模运算的结果之后, 就可以根据该结果以及任务执行节点的编号, 进行任务的分配。 具体实 现时, 可以直接将根据取模运算的结果与各个任务执行节点的编号进行匹配, 如果某任务 数据文件的编号取模运算结果与某任务执行节点的编号相等, 则将该任务数据文件分配到 该任务执行节点进行处理。也即, 若某任务执行节点的编号为 C, 则该节点负责下载并处理 所有模 N 的结果为 C 的文件。例如, 假设某任务数据文件的编号为 。
40、4, 任务执行节点的数量 为 3, 则进行取模运算之后, 得到的运算结果就是 4mod3=1, 因此, 就可以将该编号为 4 的任 务数据文件分配到编号为 1 的任务执行节点进行处理。当然, 在实际应用中, 在计算得到取 模结果之后, 也不限于用该方式进行与任务执行节点 103 的匹配, 例如, 还可以在取模结果 基础上进行加一等处理之后, 再将所得结果与任务执行节点 103 的编号进行匹配, 等等, 这 里不进行限定。 0034 通过上面的技术方案可见, 假设 P=M/N(其中, M 为任务数据文件的数量, N 为任务 执行节点的数量) , 设 U 为 P 的向上取整值, D 为 P 向下取。
41、整值, 则每个任务执行节点下载的 文件数为 U 或 D(显然 U=D+1) 。由上可见, 从文件数上看, 每个任务执行节点下载的数目是 平均的 ; 从文件编号分布情况上看, 每个任务执行节点都会去每个文件编号区间下载文件, 此时如果有某些文件编号区间的数据量特别大, 那么这些区间的数据就会平摊到每个任务 执行节点, 而不会像现有技术一样只由某几个任务执行节点来计算。 因此, 本发明实施例从 概率的角度上保证了数据会均匀分配到每个任务执行节点, 降低由于某个任务执行节点处 理数据量很大而拖慢整个计算任务的概率。 0035 为了更好地理解本发明实施例提供的技术方案, 下面通过一个具体的例子, 对本。
42、 发明实施例通过取模运算进行任务分配的实现方案进行详细地介绍。 说 明 书 CN 103347055 A 9 7/11 页 10 0036 首先, 设共有 N 个任务执行节点 (节点从 0 开始编号, 直到 N-1) , M 个任务数据文件 (文件从 0 开始编号, 直到 M-1) 。例如, 共有 3 个任务执行节点, 编号从 0 到 2 ; 共有 10 个任 务数据文件, 编号从 0 到 9。 0037 在需要进行任务分配时, 可以计算任务数据文件编号与任务执行节点数的取模运 算结果, 在本例中, 模 3 余 0 的文件编号为 0、 3、 6、 9 ; 模 3 余 1 的文件编号为 1、 4。
43、、 7 ; 模 3 余 2 的文件编号为 2、 5、 8。 0038 然后, 就可以由每个任务执行节点去下载它所负责的处理的任务数据文件, 在本 例中, 任务执行节点0负责下载编号为0、 3、 6、 9的任务数据文件 ; 任务执行节点1负责下载 编号为 1、 4、 7 的任务数据文件 ; 任务执行节点 2 负责下载编号为 2、 5、 8 的任务数据文件。 0039 在实际应用中, 由于各个任务数据文件一般是根据任务数据文件产生的先后顺序 进行编号的, 因此往往处于连续区间上的相邻任务数据文件具有一定的关联性, 后一个任 务数据文件往往是上游任务的计算结果, 因此在数据量等方面也会具有一定的相似。
44、性。例 如, 编号分别为1、 2、 3的任务数据文件可能数据量都比较大, 编号分别为5、 6、 7的任务数据 文件都比较小。如果按照编号平均分配方式, 编号为 1、 2、 3 的任务数据文件都分配给一个 任务执行节点, 编号为 4、 5、 6 的任务数据文件都分配给另一个任务执行节点处理, 那么就 会造成各执行任务节点的负担不均衡。而采用本发明实施例的分配方案, 任务执行节点最 多下载的文件数为 4, 最少下载的文件数为 3, 从下载数量上是平均的。而从文件编号区间 上看, 编号连续的文件会被不同的任务执行节点下载, 即处在连续区间上的数据会平摊到 各个任务执行节点103。 因此可以在一定程度。
45、上保证各任务执行节点103的负载均衡, 从而 避免了某个热门区间的数据膨胀带来的单个任务执行节点计算负荷过重的问题。 0040 在任务分配节点 102 将任务数据文件均匀分配到对应的任务执行节点 103 后, 就 会给相应的任务执行节点103发送指令, 告知相应的分配结果, 即某个执行节点103应该执 行哪个或哪些任务。在任务执行节点 103 接收到任务分配节点 102 的指令后, 开始执行相 关的任务处理。具体而言, 任务执行节点 103 耦接到任务分配节点 102, 根据任务分配节点 102 的分配结果, 从任务分配节点获得下载任务数据文件或从存储节点 101 下载任务数据 文件, 并进行。
46、处理。 0041 例如, 当任务执行节点 103 接收到任务分配节点 102 发送的任务数据文件的标识 之后, 任务执行节点103就可以向存储节点101发送下载请求, 并在下载请求中携带任务数 据文件的标识信息, 存储节点 101 就可以根据下载请求中的标识信息, 向任务执行节点 103 返回对应的任务数据文件, 由任务执行节点 103 对任务数据文件进行处理。 0042 又例如, 如果由任务分配节点 102 对任务数据文件进行了编号, 则任务分配节点 102 也可以将任务数据文件的编号与标识信息之间的对应关系发送到存储节点 101 进行保 存 ; 之后任务分配节点102在向任务执行节点103。
47、分配任务时, 就可以将各个任务数据文件 的编号发送到任务执行节点 103, 这样任务执行节点 103 在向存储节点 101 发送下载请求 时, 可以在下载请求中携带任务数据文件的编号, 存储节点 101 就可以根据下载请求中的 编号, 以及之前保存的编号与文件标识信息之间对应关系, 确定出需要返回的任务数据文 件的标识信息, 并向任务执行节点103返回对应的任务数据文件, 由任务执行节点103对任 务数据文件进行处理。 0043 需要说明的是, 系统中的上述存储节点 101、 任务分配节点 102 以及任务执行节点 说 明 书 CN 103347055 A 10 8/11 页 11 103 是。
48、从逻辑上进行划分的, 而从物理设备上来看, 这三个节点可能是 3 个独立的物理设 备, 也可能存在重合, 例如存储节点101、 任务分配节点102以及任务执行节点103中的任意 两个或三个, 可以由同一计算机物理设备上的不同虚拟机来实现。 当然, 某个逻辑节点还可 能通过多个物理设备实现。 0044 此外, 本发明实施例还提供了一种云计算平台的任务处理设备, 具体可以是前文 系统中描述的任务处理设备 104, 由于前文已经对该设备进行过详细描述, 故在此不再赘 述。 0045 与本发明实施例提供的云计算平台中的任务处理设备相对应, 本发明实施例还提 供了一种云计算平台中的任务处理方法, 请参见。
49、图 2。 0046 云计算平台启动一项计算任务后, 首先要将所需的任务数据文件分配给负责具体 计算任务的任务执行节点, 该方法开始于步骤 S201, 首先从存储任务数据文件的存储节点 中获取各任务数据文件的信息, 然后基于各任务数据文件的信息来确定各任务数据文件的 编号, 其中各任务数据文件的编号与任务数据文件产生的先后顺序相关。对于任务数据文 件的编号的获取可以有多种实现方式, 例如, 由于存储节点在保存各个任务数据文件时, 一 般根据任务数据文件产生的先后顺序为各个任务数据文件进行编号, 因此可以将具体的编 号添加到任务数据文件的名称或者 ID 等标识信息中。本步骤可以通过前文任务分配节点 102 中的文件信息获取器 105 执行, 相关的技术特征可以参考前文中关于文件信息获取器 105 在各实施例中的相关描述, 此处不再赘述。一方面通过执行步骤 S201 在从存储节点 中获取各任务数据文件的信息, 另一方面通过执行步骤 S202 获取任务执行节点的信息, 其 中, 任务执行节点的信息包括任务执行节点的数量以及任务执行节点的编号。当某任务执 行节点退出集群或者新加入集群时, 都可以重新对任务执行节。