一种整合实时和非实时模式的大数据分析系统的制作方法_3

文档序号:8472840阅读:来源:国知局
能够根据大数据系统反馈的产品类型,从推荐列表中选择与该产品类型相同或者相匹配的推荐产品,将推荐产品相关信息以各种方式推送给用户。
[0040]任务请求可以携带任务参数,其中每个任务请求对大数据分析系统的响应时间要求也被作为任务参数而通过任务接口模块202传输给大数据分析系统。对于要求给予实时性的结果反馈的任务请求,该任务请求的响应时间要求将会比较短,例如要求在I分钟甚至更短时间内提供结果数据响应;相反,对于要求非实时性结果反馈的任务请求,任务参数所限定的响应时间要求会比较长。可见,对于本发明将实时和非实时分析整合为一体的系统架构来说,实时性和非实时性的任务请求并不是被彼此独立地提交给不同的平台,而是将二者统一处理,而通过任务参数当中响应时间要求的不同而区分任务请求的实时性与非实时性。
[0041]数据整合模块203从所述采集系统201取得来自互联网服务平台的原始形态的业务数据,并且针对由任务接口模块202提供的各个任务请求,基于每个任务请求的任务参数,按照统一的封装结构将与各任务请求相关的业务数据分别整合为对应于各任务请求的任务数据块。其中,数据整合模块203根据各任务请求的任务参数,选取被封装到相应任务数据块的业务数据,并设定封装数据量,从而各任务数据块在统一的封装结构的基础上包含不同的数据量。经数据整合模块203整合之后的任务数据块被保存在该模块的数据缓存203a当中。
[0042]任务数据块封装业务数据所采用的统一封装结构包括数据块头部以及数据块载荷,其中数据块头部包括任务标志字段、块大小字段、块属性字段以及关联块序号字段。其中,任务标示字段记录该任务数据块所对应的任务请求的标识符。块大小字段表示当前任务数据块的整体大小。在大数据分析当中,某些任务请求可能会涉及到相当多的业务数据作为其分析目标,如果将这些业务数据封装为一个任务数据块,则会产生过大的数据块,这样不利于传输和处理。因此,在这种情况下,可以将该任务请求对应的业务数据封装到若干个任务数据块,这些任务数据块构成关联块。每个任务数据块通过块属性字段表示是否具有关联块,并且,在块属性字段表明具有关联块的情况下,采用关联块序号字段表示当前的任务数据块在全部关联块当中的排序。
[0043]任务数据块的数据块载荷部分用于封装与各任务请求相关的业务数据。数据整合模块203根据各任务请求的响应时间要求决定对应于各任务请求的任务数据块的数据块载荷部分的数据量。所述数据整合模块203可以保存如图3所示的映射表,该映射表是基于被大数据分析系统所处理的任务数据块大小与平均处理时间关系的历史统计而建立的经验性表格,该映射表当中记录了任务请求响应时间要求与任务数据块大小之间的一一对应关系。大数据分析系统的资源调度模块205在为各个任务请求相应的任务数据块分配运算资源之后,从分析处理集群206接收各个任务数据块实际处理时间的反馈,从而统计大数据分析系统中任务数据块大小与平均处理时间的对应关系,该对应关系可以用于定期更新所述映射表。例如,对于上面提到的具有实时性的响应时间要求(例如要求I分钟内提供结果数据响应)的第一任务请求,数据整合模块203根据该响应时间要求决定封装到任务数据块的业务数据的数据量不超过100M,然后数据整合模块203从由用户实时性的浏览、搜索或者加入购物车行为所产生的业务数据当中提取距离当前最近的一个时间段内的业务数据(例如由距当前时间30分钟以内的用户行为产生的业务数据),保证所提取的业务数据的数据量不超过100M,然后将所提取的业务数据封装到第一任务请求对应的任务数据块的数据库载荷部分。相类似的,数据整合模块203可以根据第二任务请求较长的响应时间要求,决定将更大数据量的业务数据封装到与第二任务请求对应的任务数据块的数据载荷部分。
[0044]任务管理模块204从任务接口模块202接收所述任务请求以及相关的任务参数,确定各任务请求的优先级,例如可以按照优先程度的从高到低依次确定“最高”、“高”、“一般”、“低”、“最低”五个优先级。各任务请求的优先级可以根据任务参数中的响应时间要求来确定,例如将响应时间要求小于最低阈值的任务请求确定为最高优先级,将响应时间要求大于最低阈值但小于次低阈值的任务请求确定为高优先级,依次类推。
[0045]任务管理模块204负责维护对应于不同优先级的任务队列。如图4所示,任务管理模块204包括任务分配开关模块204A以及任务队列204B、204C、204D、204E、204F,其中任务分配开关模块204A将各任务请求按照所确定的优先级分配给对应其优先级的任务队列,例如任务分配开关模块204A将最高优先级的任务请求分配给任务队列204B,将高优先级的任务请求分配给任务队列204C,等等。任务队列中保存的任务请求作为大数据分析系统当前正在等待处理的任务。
[0046]资源调度模块205通过查询所述任务管理模块204的各个任务队列,确定当前各优先级下正在等待处理的任务请求的数量,同时获得每个任务请求的响应时间要求参数。并且,所述资源调度模块通过查询所述数据整合模块203确定各优先级下任务请求分别对应的任务数据块的数据量。在此基础上,资源调度模块205将分析处理集群206中的运算资源分别分配给“最高”、“高”、“一般”、“低”、“最低”五个优先级。
[0047]分析处理集群206由分布式运算终端构成,分布式运算终端作为所述运算资源由资源调度模块205进行调配。
[0048]具体来说,资源调度模块205确定针对各优先级的任务请求的分配策略,所述分配策略包括并行处理和串行处理。并行处理指的是为某优先级的任务队列当中等待处理的全部任务请求一一分配分布式计算终端或者分布式计算终端组,从而使这些任务请求被同时予以处理。而串行处理指的是针对某优先级的任务队列当中等待处理的全部任务请求分配一定数量的分布式计算终端或者分布式计算终端组,从而使得部分任务请求被提取和执行,而其它的任务请求继续在任务队列当中进行等待,直至自身在其它任务请求处理完毕后被提取。为了满足响应时间要求,“最高”优先级可以采用并行策略,而其它优先级则可以视情况采用并行策略或者串行策略。资源调度模块205为分析处理集群206中的各分布式运算终端维护终端运算能力登记,如图5所示的其中某一个运算资源的登记,该登记表示某个分布式运算终端或者某个分布式运算终端组的运算数据量与运算时间的对应关系。对于“最高”优先级的任务请求,由于采用了并行策略,因而资源调度模块205分别为每个任务请求分配一个分布式运算终端或者分布式运算终端组,其中基于所述终端运算能力登记,能够确认该分布式运算终端或者分布式运算终端组处理各任务请求对应的任务数据块的时间短于响应时间要求。对于其它执行并行策略的优先级的任务请求,资源调度模块205也采用相同的方式为其分配运算资源。对于执行串行策略的优先级下的任务请求,资源调度模块205分配一个或者若干个分布式运算终端或者分布式运算终端组,其中基于所述终端运算能力登记,能够确认分布式运算终端或者分布式运算终端组处理完任务请求对应的任务数据块的总时间不长于任何一个任务请求的响应时间要求。显然,并行策略适用于实时或者准实时的任务请求,而串行策略适用于具有比较长的响应时间要求的非实时性的任务请求。
[0049]假设分析处理集群206中的分布式运算终端被所述资源调度
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1