一种分布式大数据计算引擎的制作方法

文档序号:38337069发布日期:2024-06-19 11:51阅读:32来源:国知局
本发明属于数据处理,具体涉及一种分布式大数据计算引擎。
背景技术
::1、随着情报、监视和侦察系统产生的异构数据越来越大,包括电子侦察数据、可见光谱数据、情报数据、各种场地实时态势数据以及后勤保障、人员调动等指令数据,各场景下数据业务的多样性和复杂性增加,在数据存储、计算和数据分析处理业务打通方面的挑战也越来越大。2、在分布式计算方面,除了传统在海量数据批量处理需求外,数据的实时处理高效辅助作战决策。因此技术上需要有一个统一的大数据计算引擎来处理批计算、流计算及批流一体计算的所有需求。技术实现思路1、鉴于上述的分析,本发明旨在公开一种分布式大数据计算引擎,解决了现有技术中的数据计算引擎在面对多种复杂的计算场景时,无法针对多类型的数据处理任务提供并行高效的实时计算,导致延时高,无法进行实时快速响应的问题。2、本发明的目的主要是通过以下技术方案实现的:3、一方面,本发明公开了一种分布式大数据计算引擎,该计算引擎包括:统一接口模块、分布式计算引擎模块和运算结果处理模块;4、所述统一接口模块用于接收计算任务,并基于所述计算任务的数据类型标识进行任务解析,以启动对应的计算引擎;5、所述分布式计算引擎模块包括流计算引擎、批计算引擎和批流一体计算引擎,分别用于读取并执行对应的计算任务;所述流计算引擎用于基于有向无环图中各节点的任务信息及对应的各物理计算节点的资源信息进行任务调度,以实现流数据的低延时处理;6、所述运算结果处理模块用于采集各个计算引擎的运行状态数据,进行运行状态监控并向客户端返回任务计算结果。7、进一步的,所述批计算引擎通过分布式计算和混合负载调度器进行批计算任务处理;8、所述批流一体计算引擎通过统一存储管理系统和行列混合存储的方式对批数据和流数据进行统一数据存储;并通过混合负载调度和向量化执行,利用离线处理模块和实时处理模块分别对批数据和流数据进行计算处理。9、进一步的,所述行列混合存储包括:将一个表分为多个tablet,每个所述tablet包括metadata元数据及多个行集rowset,所述行集rowset包含一个memrowset及多个diskrowset;10、所述memrowset用于新数据插入及已在memrowset中的数据的更新,memrowset中的数据按照行进行存储,一个memrowset写满后会将数据刷到磁盘形成多个diskrowset;11、所述diskrowset用于旧数据的变更,通过后台定期对diskrowset进行压缩处理,以删除没用的数据及合并历史数据;其中diskrowset中的数据按照列进行组织。12、进一步的,所述流计算引擎包括控制节点模块,计算节点模块和zookeeper集群模块;13、所述计算节点模块包括多个物理计算节点,用于监测和执行对应的流计算任务;14、所述zookeeper集群模块部署在多个服务器上,用于存储多个所述物理计算节点的所有状态信息和任务信息,以供所述计算节点模块和控制节点模块进行实时监控调用;15、所述控制节点模块用于基于流处理任务中的多个待执行的任务信息及每个物理计算节点的资源信息生成有向无环图;并将待执行的所述任务按照所述有向无环图中的对应关系下发到对应的物理计算节点进行处理,并基于每个物理计算节点的资源信息进行任务调度,以实现流数据的低延时处理。16、进一步的,所述物理计算节点包括监测进程tracker和工作进程worker;所述监测进程tracker通过所述zookeeper集群模块获取任务信息并创建工作进程worker,以对下发到该物理计算节点的任务进行计算处理;17、所述监测进程tracker还用于监测工作进程worker的任务异常消息,并基于预设的故障恢复流程进行任务恢复,以实现所述流处理任务的连续执行。18、进一步的,所述基于每个物理计算节点的资源信息进行任务调度,包括:19、获取各个物理计算节点的资源使用率,所述资源使用率包括cpu使用率、内存占有率、磁盘i/o使用率和带宽使用率;20、计算所述cpu使用率、内存占有率、磁盘i/o使用率和带宽使用率在总的资源使用率中所占的比重;21、若其中任意一项使用率所占的比重超出预设的阈值,则判定需要对该物理计算节点待执行的任务进行任务调度;22、基于每个物理计算节点的资源信息,计算得到各个所述物理计算节点对应的任务调度优先级,并基于任务调度优先级最高的物理计算节点对待调度的任务进行任务调度。23、进一步的,所述基于每个物理计算节点的资源信息,计算得到各个所述物理计算节点对应的任务调度优先级,包括:24、基于各个物理计算节点的各项资源使用率,得到每个物理计算节点的各项所述资源的剩余率;25、根据各个物理计算节点的各项所述资源的剩余率和待调度任务需要的资源量,得到各项资源的任务优先级贡献度;26、基于各个物理计算节点的各项所述资源的任务优先级贡献度,得到各物理计算节点对应的待调度任务的任务调度优先级。27、进一步的,基于cpu、内存和磁盘i/o接口对应的资源剩余率和任务需要的资源量的差值,通过下述公式,得到所述cpu、内存和磁盘i/o的任务优先级贡献度:28、29、30、31、其中,fcpu、fmem、fio分别为cup、内存和磁盘i/o的任务优先级贡献度;δcpu、δmem和δio分别为cup、内存和磁盘i/o的资源的剩余率和任务需要的各项资源量的差值;taskcpu表示任务需要的cpu资源量,taskmem表示任务需要的内存资源量,taskio表示任务需要的磁盘i/o资源量,qoscpu、qoscpu和qoscpu分别为cpu、内存和磁盘i/o接口的资源剩余率,α、β、γ为权重因子。32、进一步的,通过下述公式,得到所述物理计算节点对应的待调度任务的任务调度优先级:33、rank(task)=ρ+r(task)*fcpu*fmem*fio*v;34、其中,rank(task)为任务调度优先级;fcpu、fmem、fio分别为当前物理计算节点的cup、内存和磁盘i/o对待调度任务的任务调度优先级贡献度;ρ为补偿因子;r(task)为待调度任务在调度序列中距离终点任务的大小;v为任务处理速度影响因子,v=(1-s)/t;s为待调度任务输出数据量与输入量的比值,t为任务已处理的时间。35、进一步的,所述流计算任务需要的各项资源量分别通过下述方法得到:36、在物理计算节点上单独运行所述流计算任务,分别统计cpu的空闲时间t1和运行时间t2;通过下述公式得到所述流计算任务需要的cpu资源量taskcpu:37、taskcpu=1-p=1-t1/(t2*q);38、其中,p为单独运行任务时的cpu空闲率,q为cpu数量;39、所述流计算任务需要的内存资源量taskmem和磁盘i/o资源量taskio分别通过对应的物理计算节点提供的内存和磁盘i/o统计工具统计得到。40、本发明至少可实现以下有益效果之一:41、1.本发明集成了多种数据计算引擎,基于统一的数据接口模块进行数据任务解析,实现了流数据、批数据、批流一体数据的并行高效实时处理。42、2.本发明基于物理计算节点的硬件资源信息,计算得到各个物理计算节点对应的任务调度优先级,并基于任务调度优先级最高的物理计算节点对待调度的任务进行任务调度,实现了在固定的硬件资源和任务优先级约束的条件下,对流数据处理任务进行分配和执行,实现了流处理任务的低延时处理,提高了系统的实时性。43、3.本发明在任务调度中引入补偿因子和任务处理速度影响因子,在任务调度时不但考虑了不同的资源对调度的影响,且考虑了任务处理速度的影响,并对正在运行的任务给予补偿,提高正在运行的任务的调度优先级,保证任务运行的连续性和调度算法的正确性和实效性,减少了系统时延,能够更好的解决流数据处理瓶颈的问题。44、3.本发明通过zookeeper集群模块、备份控制节点设置和故障恢复流程实现了流计算任务的持续执行,保证了流计算引擎的可靠性。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1