数据处理方法和分布式数据处理系统
技术领域
本发明涉及计算机网络技术领域,特别地涉及一种数据处理方法和分布式数据处理系统。
背景技术
大数据应用的普及和深入,使得分布式数据处理的技术被业界广泛使用,基于Hadoop的分布式技术框架已经成为业界搭建大数据平台的事实标准,Hadoop技术体系很好的解决了离线数据处理任务的调度问题,随着业务应用的深入和实时数据处理技术的发展,离线计算已经越来越不能满足业务的需要,人们迫切需要数据能够实时抽取和计算。现有的实时任务调度方案主要应用于集中式的系统,一般采用单节点或主从备份的方式运行。如采用单节点运行方案,实时任务被部署到一台机器上运行。如采用主从备份的运行方案,实时任务被部署到一台单节点的机器上运行,同时部署1台到2台备份机器,当运行机器出现故障时,切换到备份机器继续运行。
发明人在实现本发明的过程中发现,现有的实时任务调度方案无法适应大规模分布式系统的技术架构,当实时任务被部署到分布式系统环境时无法提供统一调度和监控功能,从而也无法动态的进行任务的分配和调度。因无统一调度和监控,当部署新任务或者维护已有任务时需要很大的工作量,维护成本高,效率低下。如采用单机方式,无法做到故障后的快速恢复和切换。如采用主从备份方式,必须借助人工或其他系统进行机器切换和故障恢复,效率低下,同时需要在主从机器之外再单独的备份服务器,造成资源的浪费。
发明内容
有鉴于此,本发明提供一种数据处理方法和分布式数据处理系统,能够克服现有技术中的上述种种不足之处。
为实现上述目的,根据本发明的一个方面,提供了一种数据处理方法和分布式数据处理系统。
本发明的数据处理方法包括:分布式系统的中心节点在接收到数据处理任务后,从多个执行节点中确定一个节点作为执行该数据处理任务的任务执行节点,然后将该数据处理任务提供给该任务执行节点;所述任务执行节点在得到所述数据处理任务后,启动任务执行线程,并且监控该任务的执行线程的执行状态,在执行异常的情况下,所述任务执行节点将所述数据处理任务向所述中心节点提交。
可选地,从多个执行节点中确定一个节点作为执行该数据处理任务的任务执行节点的步骤包括:判断当前所述多个执行节点中是否存在计算资源符合预设标准的节点,若是,从中选择一个节点作为执行该数据处理任务的任务执行节点,否则,延时之后继续进行该判断直至存在计算资源符合预设标准的执行节点。
可选地,将该数据处理任务提供给该任务执行节点的步骤包括:中心节点将该数据处理任务发送给zookeeper节点,由该zookeeper节点将该数据处理任务发送给该任务执行节点。
可选地,所述中心节点是以主从备份的方式设置的两个中心节点中的主节点;所述方法还包括:所述zookeeper节点保存所述分布式系统中的各个节点和任务的状态信息;在所述主节点在所述两个中心节点之间切换的情况下,切换后的主节点从所述zookeeper节点中获取所述分布式系统中的各个节点和任务的状态信息。
根据本发明的另一方面,提供了一种分布式数据处理系统。
本发明的分布式数据处理系统包括中心节点和执行节点,其中:所述中心节点用于在接收到数据处理任务后,从多个所述执行节点中确定一个节点作为执行该数据处理任务的任务执行节点,然后将该数据处理任务提供给该任务执行节点;所述执行节点,用于在得到所述数据处理任务后,启动任务执行线程,并且监控该任务的执行线程的执行状态,以及用于在执行异常的情况下,将所述数据处理任务向所述中心节点提交。
可选地,所述中心节点还用于:判断当前所述多个执行节点中是否存在计算资源符合预设标准的节点,若是,从中选择一个节点作为执行该数据处理任务的任务执行节点,否则,延时之后继续进行该判断直至存在计算资源符合预设标准的执行节点。
可选地,所述系统还包括zookeeper节点;所述中心节点还用于将数据处理任务发送给zookeeper节点;所述zookeeper节点用于将所述中心节点发来的数据处理任务发送给任务执行节点。
可选地,所述中心节点有两个,以主从备份方式设置;所述zookeeper节点还用于保存所述分布式系统中的各个节点和任务的状态信息;所述中心节点还用于在切换成为主节点的情况下,从所述zookeeper节点中获取所述分布式系统中的各个节点和任务的状态信息。
根据本发明的技术方案,由中心节点调度任务,执行节点检测任务执行状态并在执行异常时由中心节点重新调度任务,从而实现了统一调度和监控功能,再加上中心节点考察执行节点的资源状态,能够实现任务的动态分配和调度。采用主从备份方式并且利用zookeeper系统进行协调,由zookeeper节点保存所有节点和任务的状态信息并进行其他节点间数据的转发,能够避免一个节点的故障影响到其他节点,无需单独的备份服务器,而且备份时切换到的新的主中心节点能够从zookeeper节点获取到系统中各节点和任务的状态信息,做到了信息同步,从而可实现自动切换,提高了效率。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的分布式数据处理系统的基本组成部分的示意图;
图2是根据本发明实施例的分布式数据处理系统的一种优选组成部分的示意图;
图3是根据本发明实施例的数据处理方法的一种流程的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的分布式数据处理系统的基本组成部分的示意图。本实施例中,分布式数据处理系统10主要包括中心节点和执行节点。中心节点可以是一个,优选地采用图1所示的两个中心节点11、12主从备份的方式。执行节点有多个,即执行节点13、14、……1N,从而构成分布式系统。中心节点主要负责将数据处理任务提交给执行节点,根据监控到的任务执行的状况来重新调度宕机服务器上的任务。执行节点布置在服务器上,主要用来获取该服务器需要执行任务信息,执行任务并且监控任务执行状况,以及维护该服务器所有任务生命周期。
图2是根据本发明实施例的分布式数据处理系统的一种优选组成部分的示意图。如图2所示,分布式数据处理系统20在分布式数据处理系统10的基础上添加了zookeeper节点21。应用zookeeper协调系统,由zookeeper转发系统中其他节点之间的数据,并由zookeeper节点保存所有节点和任务的状态信息。
图3是根据本发明实施例的数据处理方法的一种流程的示意图。该流程基于图2所示的分布式数据处理系统20实现,其中各节点之间的数据由zookeeper节点21转发;如果采用图1所示的分布式数据处理系统10,则中心节点和执行节点之间直接交换数据。图3的流程主要包括以下的步骤S31至步骤S36。
步骤S31:中心节点接收客户端提交的任务。
步骤S32:中心节点从执行节点中选择一个节点来执行任务。中心节点在选择时,主要根据各执行节点的计算资源(即CPU占用量、内存占用量、网络带宽等)状况进行,可以判断系统中的多个执行节点中是否存在计算资源符合预设标准的节点,若是,从中选择一个节点作为执行该数据处理任务的任务执行节点,否则,延时之后继续进行该判断直至存在计算资源符合预设标准的执行节点。
步骤S33:中心节点将任务发送给选择的任务执行节点。
步骤S34:任务执行节点启动任务执行线程来执行任务。在执行任务的过程中,进行步骤S35。
步骤S35:任务执行节点检测当前任务的执行状态是否发生异常。若是,进入步骤S36,否则继续检测。
步骤S36:任务执行节点将当前任务提交给中心节点。本步骤之后返回步骤S32,由中心节点重新分配该任务。
根据本发明实施例的技术方案,由中心节点调度任务,执行节点检测任务执行状态并在执行异常时由中心节点重新调度任务,从而实现了统一调度和监控功能,再加上中心节点考察执行节点的资源状态,能够实现任务的动态分配和调度。采用主从备份方式并且利用zookeeper系统进行协调,由zookeeper节点保存所有节点和任务的状态信息并进行其他节点间数据的转发,能够避免一个节点的故障影响到其他节点,无需单独的备份服务器,而且备份时切换到的新的主中心节点能够从zookeeper节点获取到系统中各节点和任务的状态信息,做到了信息同步,从而可实现自动切换,提高了效率。
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和设备的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来开发出的任何存储介质。
还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。