一种基于Java虚拟机资源池的数据处理方法

文档序号:6504910阅读:336来源:国知局
一种基于Java虚拟机资源池的数据处理方法
【专利摘要】本发明公开了一种基于Java虚拟机资源池的数据处理方法,通过JVM Pool Controller对JVM池中的虚拟机资源按需的进行创建、杀死、重置,进而维护一个保持活动的JVM池,为Hadoop MapReduce框架提供Job复用JVM支持,消除连续运行MapReduce任务时JVM的重复启动开销,加速MapReduce任务的启动加载速度;通过对JVM池的管理,为分布式的Java程序提供JVM级别的横向扩展和负载均衡支持。在应用于海量数据处理时,可以大大降低用于海量数据处理的Hadoop MapReduce任务的启动时间;在用于其他大规模分布的Java程序能够大大提升JVM负载均衡和横向扩展能力。
【专利说明】一种基于Java虚拟机资源池的数据处理方法

【技术领域】
[0001]本发明涉及计算机数据处理领域,尤其涉及一种基于Java虚拟机资源池的数据处理方法。

【背景技术】
[0002](1)已有技术:
[0003]目前用Hadoop Map Reduce框架对海量数据进行分析,提交一个Job (即作业)到MapReduce框架,随即被分解为多台服务器上多个并行的Task(即任务),完成后将计算结果回收归并。通常每个Task运行在一个JVM上,每个JVM是一个独立的进程,同一个Job的多个Task可以复用一个JVM。
[0004](2)已有技术问题及缺陷:
[0005]MapReduce Job启动加载慢,由于每个Job需要在多台服务器上启动多个JVM进程,服务器越多启动开销越大、启动越慢。目前Hadoop MapReduce只支持Task复用JVM,当需要连续地处理海量数据上的多个数据分析业务时,这种重复启动JVM的开销十分明显而且不必要。更广泛地、对于集群上的分布式Java程序,负载均衡的粒度也不能细致到JVM级别。


【发明内容】

[0006]本发明的目的在于提供一种针对海量信令数据处理分析业务时能够大大降低用于海量数据处理的Hadoop MapReduce任务的启动时间,提高数据处理效率的方法,从而解决现有技术中存在的前述问题。
[0007]本发明主要应用于云计算领域海量数据分析业务和其他分布式Java程序。使用一种云数据中心Java虚拟机资源池技术,可以大大降低用于海量数据处理的HadoopMapReduce任务的启动时间,有效地提升了 Java Virtual Machine (Java虚拟机,以下简称JVM)负载均衡和横向扩展能力。
[0008]为了实现上述目的,本发明采用的技术方案如下:
[0009]一种基于Java虚拟机资源池的数据处理方法,通过JVM Pool Controller对JVM池中的虚拟机资源按需的进行创建、杀死、重置;
[0010]维护一个保持活动的JVM池,为Hadoop MapReduce框架提供Job复用JVM支持;
[0011]消除连续运行MapReduce任务时JVM的重复启动开销,加速MapReduce任务的启动加载速度;
[0012]通过对JVM池的管理,为分布式的Java程序提供JVM级别的横向扩展和负载均衡支持。
[0013]优选的,所述维护一个保持活动的JVM池的方法,具体为:通过JVM Pool Manager启动、维护和管理一组活动的JVM进程,并负责分发Task到空闲的JVM实例。
[0014]优选的,具体包括以下步骤:
[0015]SI,系统初始化;
[0016]S2,JVM通过JVM控制器协议周期性向JVM控制器上报心跳,传递JVM的基本信息;
[0017]S3,JVM控制器通过JVM池控制器协议周期性的向JVM池控制器上报心跳,传递JVM控制器的基本信息;
[0018]S4,当客户端需要通过JStack执行任务或者申请资源时,需要先通过存储器内容加载器使用JVM客户端协议向JVM控制器获取JVM端口和JVM当前工作目录,并传递给存储器内存执行器;
[0019]S5,存储器内容执行器通过JVM协议将请求直接传递给JVM,并通过心跳机制将请求间接传递给JVM控制器以及JVM池控制器执行相应的命令。
[0020]优选的,所述JVM的基本信息,包括:JVM通信端口、内存、创建时间、运行时间和工作目录。
[0021]优选的,所述JVM控制器的基本信息,包括:JVM创建数量、运行状态、每个JVM的内存、通信端口、创建时间、运行时间和工作目录。
[0022]优选的,所述的对JVM池的管理,包括:创建、杀死和重置JVM池中的JVM的步骤。
[0023]本发明的有益效果是:
[0024]本发明的基于云数据中心Java虚拟机资源池的数据处理方法,在应用于海量数据处理时,可以大大降低用于海量数据处理的Hadoop MapReduce任务的启动时间;
[0025]在用于其他大规模分布的Java程序能够大大提升JVM负载均衡和横向扩展能力。

【专利附图】

【附图说明】
[0026]图1是本发明的基于云数据中心Java虚拟机资源池的数据处理方法的JVM池结构示意图;
[0027]图2是本发明的基于云数据中心Java虚拟机资源池的数据处理方法的处理流程示意图。

【具体实施方式】
[0028]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的【具体实施方式】仅仅用以解释本发明,并不用于限定本发明。
[0029]JVM Pool Controller---Java 池控制器;
[0030]JVM---JavaVirtualMachine (Java 虚拟机)的缩写;
[0031]hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序;
[0032]MapReduce 是 hadoop 的核心组件之一;
[0033]本发明是在解决海量信令数据处理分析业务时提出,主要目的是为了解决在连续数据处理时Hadoop MapReduce框架启动加载慢的问题。
[0034]如图1、2所示,本发明公开了一种基于Java虚拟机资源池的数据处理方法,通过JVM Pool Controller对JVM池中的虚拟机资源按需的进行创建、杀死、重置,进而维护一个保持活动的JVM池,为Hadoop MapReduce框架提供Job复用JVM支持,消除连续运行MapReduce任务时JVM的重复启动开销,加速MapReduce任务的启动加载速度;通过对JVM池的管理(包括:创建、杀死和重置JVM池中的JVM),为分布式的Java程序提供JVM级别的横向扩展和负载均衡支持。所述维护一个保持活动的JVM池的方法,具体为:通过JVM PoolManager启动、维护和管理一组活动的JVM进程,并负责分发Task到空闲的JVM实例。
[0035]具体包括以下步骤:
[0036]S1,系统初始化;
[0037]S2,JVM通过JVM控制器协议周期性向JVM控制器上报心跳,传递JVM的基本信息(如:JVM通信端口、内存、创建时间、运行时间、工作目录等);
[0038]S3,JVM控制器通过JVM池控制器协议周期性的向JVM池控制器上报心跳,传递JVM控制器的基本信息(如:JVM创建数量、运行状态、每个JVM的内存、通信端口、创建时间、运行时间、工作目录等);
[0039]S4,当客户端需要通过JStack执行任务或者申请资源时,需要先通过存储器内容加载器使用JVM客户端协议向JVM控制器获取JVM端口和JVM当前工作目录,并传递给存储器内存执行器;
[0040]S5,存储器内容执行器通过JVM协议将请求直接传递给JVM,并通过心跳机制将请求间接传递给JVM控制器以及JVM池控制器执行相应的命令。
[0041]通过采用本发明公开的上述技术方案,得到了如下有益的效果:
[0042]本发明的基于云数据中心Java虚拟机资源池的数据处理方法,:
[0043]在应用于海量数据处理时,可以大大降低用于海量数据处理的Hadoop MapReduce任务的启动时间;
[0044]在用于其他大规模分布的Java程序能够大大提升JVM负载均衡和横向扩展能力。
[0045]以上所述仅是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
【权利要求】
1.一种基于Java虚拟机资源池的数据处理方法,其特征在于包括以下步骤: 通过JVM Pool Controller对JVM池中的虚拟机资源按需的进行创建、杀死、重置; 维护一个保持活动的JVM池,为Hadoop MapReduce框架提供Job复用JVM支持; 消除连续运行MapReduce任务时JVM的重复启动开销,加速MapReduce任务的启动加载速度; 通过对JVM池的管理,为分布式的Java程序提供JVM级别的横向扩展和负载均衡支持。
2.根据权利要求1所述的基于Java虚拟机资源池的数据处理方法,其特征在于,所述维护一个保持活动的JVM池,具体为:通过JVM Pool Manager启动、维护和管理一组活动的JVM进程,并负责分发Task到空闲的JVM实例。
3.根据权利要求1所述的基于Java虚拟机资源池的数据处理方法,其特征在于,具体包括以下步骤: SI,系统初始化; S2,JVM通过JVM控制器协议周期性向JVM控制器上报心跳,传递JVM的基本信息; S3,JVM控制器通过JVM池控制器协议周期性的向JVM池控制器上报心跳,传递JVM控制器的基本信息; S4,当客户端需要通过JStack执行任务或者申请资源时,需要先通过存储器内容加载器使用JVM客户端协议向JVM控制器获取JVM端口和JVM当前工作目录,并传递给存储器内存执行器; S5,存储器内容执行器通过JVM协议将请求直接传递给JVM,并通过心跳机制将请求间接传递给JVM控制器以及JVM池控制器执行相应的命令。
4.根据权利要求3所述的基于Java虚拟机资源池的数据处理方法,其特征在于,所述JVM的基本信息,包括:JVM通信端口、内存、创建时间、运行时间和工作目录。
5.根据权利要求3所述的基于Java虚拟机资源池的数据处理方法,其特征在于,所述JVM控制器的基本信息,包括:JVM创建数量、运行状态、每个JVM的内存、通信端口、创建时间、运行时间和工作目录。
6.根据权利要求1所述的基于Java虚拟机资源池的数据处理方法,其特征在于,所述的对JVM池的管理,包括:创建、杀死和重置JVM池中的JVM的步骤。
【文档编号】G06F9/455GK104252368SQ201310264290
【公开日】2014年12月31日 申请日期:2013年6月27日 优先权日:2013年6月27日
【发明者】张明浩, 王耘, 喻大发 申请人:珠海世纪鼎利通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1