CN104065741B - 数据采集系统和数据采集方法 - Google Patents
数据采集系统和数据采集方法 Download PDFInfo
- Publication number
- CN104065741B CN104065741B CN201410319209.4A CN201410319209A CN104065741B CN 104065741 B CN104065741 B CN 104065741B CN 201410319209 A CN201410319209 A CN 201410319209A CN 104065741 B CN104065741 B CN 104065741B
- Authority
- CN
- China
- Prior art keywords
- node
- collector
- data
- leader
- zookeeper
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于Zookeeper集群的数据采集系统,包括:消息队列建立单元,用于根据不同的数据源建立不同的消息队列;Zookeeper集群,用于监控多个采集器的状态,并使所述消息队列中的任一消息数据仅被多台所述采集器中的一个采集器采集,其中每个所述消息队列对应于所述Zookeeper集群的一个持久化节点;每个所述采集器,在所述Zookeeper集群的协调下获取消息数据,所述采集器对应于所述持久化节点下的临时节点。相应地,本发明还提出了一种基于Zookeeper集群的数据采集方法。通过本发明的技术方案,可以按照不同的数据源制定不同的采集模块,可以针对不同的存储需求制定不同的存储策略,实现了数据采集和存储的多样性。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种基于Zookeeper集群的数据采集系统和一种基于Zookeeper集群的数据采集方法。
背景技术
随着大数据时代的到来,企业的数据量在急剧地增加,各种企业应用产生的数据需要被实时、高效、安全地收集并存储到大数据平台上。
目前的数据采集系统有多种方案可供选择,如分布式数据采集工具ApacheFlume、Facebook Scribe等。但是,目前的大部分数据采集系统只是针对某一特定的数据源,并将该特定的数据源存储到特定的文件系统或数据仓库,这样导致难以处理实际应用中的多样化的企业数据和以多种存储方式为基准的并发存储方式,这样就给企业带来了很多不便,例如,一些有些情况下,企业为了适应数据源多样化、存储多样化的需求甚至仍需对这些系统做二次开发。
因此,如何实现数据采集和存储方式的多样化,成为目前亟待解决的问题。
发明内容
本发明正是基于上述技术问题,提出了一种新的技术方案,可以按照不同的数据源制定不同的采集模块,可以针对不同的存储需求制定不同的存储策略,用户可以根据需求方便地实现多终端、多数据源、多存储方式的数据采集与存储,能快速方便地扩展终端和存储方式,实现了数据采集和存储的多样性。
有鉴于此,本发明提出了一种基于Zookeeper集群的数据采集系统,其特征在于,包括:消息队列建立单元,用于根据不同的数据源建立不同的消息队列;Zookeeper集群,用于监控多个采集器的状态,并使所述消息队列中的任一消息数据仅被多台所述采集器中的一个采集器采集,其中每个所述消息队列对应于所述Zookeeper集群的一个持久化节点;每个所述采集器,在所述Zookeeper集群的协调下获取消息数据,所述采集器对应于所述持久化节点下的临时节点。
ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。(本释义来自链接http://baike.baidu.com/view/3061646.htm?fr=aladdin)
在该技术方案中,针对不同的数据源建立不同的消息队列,消息队列定义在不同的主机上面,每个消息队列用来接收不同格式、不同来源的数据,可关联多个发送方和多个接收方,另外,采集器是消息队列的接收方,针对不同的消息队列可以配置不同的采集器。这样,通过支持在同一套系统中制定不同的数据源,并按照不同的数据源制定不同的采集器,就实现了数据采集的多样化,可以针对不同的存储需求制定不同的存储策略,实现对同一数据进行多种方式的并发存储,进而提高了处理效率。
在上述技术方案中,优选地,还包括:所述Zookeeper集群根据采集器注册时间为每个所述消息队列动态产生采集器领导者,将所述采集器领导者所在持久化节点下的临时节点作为领导者节点,以及将所述持久化节点下的其他临时节点作为从节点;所述领导者节点负责与所述从节点的通信以执行预定任务。
在该技术方案中,采集器领导者由Zookeeper集群动态产生,即先注册、处于活动状态的节点会优先被考虑成为采集器领导者节点,采集器领导者节点与从节点通信以执行预定的任务,采集器领导者节点和从节点都位于消息队列的持久化节点之下,每个队列都有一个选举产生的采集器领导者节点和若干个从节点,增加了系统的有序性和稳定性。
在上述技术方案中,优选地,还包括:所述Zookeeper集群根据心跳时间确定所述领导者节点是否丢失,如果确认丢失,则选择下一个注册的采集器作为采集器领导者。
在该技术方案中,Zookeeper集群可设置心跳时间,比如,将心跳时间设置为10秒钟,如果连续10秒钟内没有收到采集器领导者节点的心跳,则认为此采集器领导者节点丢失或节点机器的状态出了问题。ZooKeeper集群有两种工作方式:恢复模式和广播模式。在服务刚刚启动时或在采集器领导者节点丢失后,ZooKeeper集群进入恢复模式,在恢复模式下,系统首先会选举下一个注册的活动节点为采集器领导者节点,增加了系统的稳定性,然后从节点与采集器领导者节点进行状态及数据的同步,之后进入再广播模式,在广播模式里,采集器领导者节点可直接与从节点通信。
在上述技术方案中,优选地,所述预定任务包括:所述领导者节点负责与从节点进行文件属性变更的通信;所述领导者节点周期性地合并所述从节点上的文件数据;以及所述领导者节点定期调用预设脚本或程序对所有采集器生成的文件进行分析。
在该技术方案中,文件属性包括文件存储方式、存储位置、文件名及其它信息变更。比如,在HDFS(Hadoop Distributed File System,为一种分布式文件系统)存储方式下,采集器领导者节点会周期性地生成文件名,通过周期性的心跳机制,各采集器通过节点可以从ZooKeeper处感知到采集器领导者节点的数据变化,如文件名称信息的变化,根据最新的文件名称模板生成自己的文件。同时,采集器领导者节点会周期性地合并各从节点上的文件数据,或者通知从节点具体的存储位置及存储方式,实现了存储的多样化。另外,采集器领导者节点是动态选举产生的,但采集器领导者节点需要执行的任务是系统指定的。预设脚本包括Pig脚本和Hive脚本,预设程序包括MapReduce程序。其中,Hive是基于Hadoop的一种数据仓库工具,MapReduce程序用于大规模数据集的并行运算。这些脚本或者程序中包含着主要的业务逻辑,如合并、聚集等,采集器领导者可通过系统环境或指定参数访问到这些业务逻辑以进行分析,以针对不同的存储需求制定不同的存储策略。
在上述技术方案中,优选地,还包括:数据库,用于存储分析后得到的数据。
在该技术方案中,分析后的数据可通过Pig脚本存储于外部数据库,如Oracle、PostgreSQL等,也可通过Sqoop导出HDFS或Hive中的数据到外部关系型数据库。其它系统可访问此数据库做进一步的分析,灵活实现了企业的分析需求。其中,Sqoop是一种开源的工具,用于在Hadoop和其他数据库之间进行数据交换。
根据本发明的另一方面,还提供了一种基于Zookeeper集群的数据采集方法,包括:根据不同的数据源建立不同的消息队列;通过Zookeeper集群监控多个采集器的状态,并使所述消息队列中的任一消息数据仅被多台所述采集器中的一个采集器采集,其中每个所述消息队列对应于所述Zookeeper集群的一个持久化节点;每个所述采集器在所述Zookeeper集群的协调下获取消息数据,所述采集器对应于所述持久化节点下的临时节点。
ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。(本释义来自链接http://baike.baidu.com/view/3061646.htm?fr=aladdin)
在该技术方案中,针对不同的数据源建立不同的消息队列,消息队列定义在不同的主机上面,每个消息队列用来接收不同格式、不同来源的数据,可关联多个发送方和多个接收方,另外,采集器是消息队列的接收方,针对不同的消息队列可以配置不同的采集器。这样,通过支持在同一套系统中制定不同的数据源,并按照不同的数据源制定不同的采集器,就实现了数据采集的多样化,可以针对不同的存储需求制定不同的存储策略,实现对同一数据进行多种方式的并发存储,提高了处理效率。
在上述技术方案中,优选地,还包括:所述Zookeeper集群根据采集器注册时间为每个所述消息队列动态产生采集器领导者,将所述采集器领导者所在持久化节点下的临时节点作为领导者节点,以及将所述持久化节点下的其他临时节点作为从节点;以及所述领导者节点负责与所述从节点的通信以执行预定任务。
在该技术方案中,采集器领导者由Zookeeper集群动态产生,即先注册、处于活动状态的节点会优先被考虑成为采集器领导者节点,采集器领导者节点与从节点通信以执行预定的任务,采集器领导者节点和从节点都位于消息队列的持久化节点之下,每个队列都有一个选举产生的采集器领导者节点和若干个从节点,增加了系统的有序性和稳定性。
在上述技术方案中,优选地,还包括:所述Zookeeper集群根据心跳时间确定所述领导者节点是否丢失,如果确认丢失,则选择下一个注册的采集器作为领导者节点。
在该技术方案中,Zookeeper集群可设置心跳时间,比如,将心跳时间设置为10秒钟,如果连续10秒钟内没有收到采集器领导者节点的心跳,则认为此采集器领导者节点丢失或节点机器的状态出了问题。ZooKeeper集群有两种工作方式:恢复模式和广播模式。在服务刚刚启动时或在采集器领导者节点丢失后,ZooKeeper集群进入恢复模式,在恢复模式下,系统首先会选举下一个注册的活动节点为采集器领导者节点,增加了系统的稳定性,然后从节点与采集器领导者节点进行状态及数据的同步,之后进入再广播模式,在广播模式里,采集器领导者节点可直接与从节点通信。
在上述技术方案中,优选地,所述预定任务包括:所述领导者节点负责与从节点进行文件属性变更的通信;所述领导者节点周期性地合并所述从节点上的文件数据;以及所述领导者节点定期调用预设脚本或程序对所有采集器生成的文件进行分析。
在该技术方案中,文件属性包括文件存储方式、存储位置、文件名及其它信息变更。比如,在HDFS(Hadoop Distributed File System,为一种分布式文件系统)存储方式下,采集器领导者节点会周期性地生成文件名,通过周期性的心跳机制,各采集器通过节点可以从ZooKeeper处感知到采集器领导者节点的数据变化,如文件名称信息的变化,根据最新的文件名称模板生成自己的文件。同时,采集器领导者节点会周期性地合并各从节点上的文件数据,或者通知从节点具体的存储位置及存储方式,实现了存储的多样化。另外,采集器领导者节点是动态选举产生的,但采集器领导者节点需要执行的任务是系统指定的。预设脚本包括Pig脚本和Hive脚本,预设程序包括MapReduce程序。其中,Hive是基于Hadoop的一种数据仓库工具,MapReduce程序用于大规模数据集的并行运算。这些脚本或者程序中包含着主要的业务逻辑,如合并、聚集等,采集器领导者可通过系统环境或指定参数访问到这些业务逻辑以进行分析,以针对不同的存储需求制定不同的存储策略。
在上述技术方案中,优选地,还包括:将分析后得到的数据存储于数据库中。
在该技术方案中,分析后的数据可通过Pig脚本存储于外部数据库,如Oracle、PostgreSQL等,也可通过Sqoop导出HDFS或Hive中的数据到外部关系型数据库。其它系统可访问此数据库做进一步的分析,灵活实现了企业的分析需求。其中,Sqoop是一种开源的工具,用于在Hadoop和其他数据库之间进行数据交换。
通过本发明的技术方案,可以按照不同的数据源制定不同的采集模块,可以针对不同的存储需求制定不同的存储策略,用户可以根据需求方便地实现多终端、多数据源、多存储方式的数据采集与存储,能快速方便地扩展终端和存储方式,实现了数据采集和存储方式的多样性,通过实时、稳定的集群间数据通信和任务分发,可以快速地获取、处理数据,有效地控制负载均衡,加快数据的处理周期,可灵活应对企业数据的采集、存储、分析的需求,极大地提高了处理效率。
附图说明
图1示出了根据本发明的实施例的数据采集系统的框图;
图2示出了根据本发明的实施例的数据采集方法的流程图;
图3示出了根据本发明的一个实施例的数据采集系统的示意框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了根据本发明的实施例的数据采集系统的框图。
如图1所示,根据本发明的实施例的数据采集系统100,包括:消息队列建立单元102,用于根据不同的数据源建立不同的消息队列;Zookeeper集群104,用于监控多个采集器的状态,并使消息队列中的任一消息数据仅被多台采集器中的一个采集器采集,其中每个消息队列对应于Zookeeper集群的一个持久化节点;每个采集器106,在Zookeeper集群的协调下获取消息数据,采集器对应于持久化节点下的临时节点。
ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。(本释义来自链接http://baike.baidu.com/view/3061646.htm?fr=aladdin)
在该技术方案中,针对不同的数据源建立不同的消息队列,消息队列定义在不同的主机上面,每个消息队列用来接收不同格式、不同来源的数据,可关联多个发送方和多个接收方,另外,采集器是消息队列的接收方,针对不同的消息队列可以配置不同的采集器。这样,通过支持在同一套系统中制定不同的数据源,并按照不同的数据源制定不同的采集器,就实现了数据采集的多样化,可以针对不同的存储需求制定不同的存储策略,实现对同一数据进行多种方式的并发存储,提高了处理效率。
在上述技术方案中,优选地,还包括:Zookeeper集群根据采集器注册时间为每个消息队列动态产生采集器领导者,将采集器领导者所在持久化节点下的临时节点作为领导者节点,以及将持久化节点下的其他临时节点作为从节点;领导者节点负责与从节点的通信以执行预定任务。
在该技术方案中,采集器领导者由Zookeeper集群动态产生,即先注册、处于活动状态的节点会优先被考虑成为采集器领导者节点,采集器领导者节点与从节点通信以执行预定的任务,采集器领导者节点和从节点都位于消息队列的持久化节点之下,每个队列都有一个选举产生的采集器领导者节点和若干个从节点,增加了系统的有序性和稳定性。
在上述技术方案中,优选地,还包括:Zookeeper集群根据心跳时间确定领导者节点是否丢失,如果确认丢失,则选择下一个注册的采集器作为采集器领导者。
在该技术方案中,Zookeeper集群可设置心跳时间,比如,将心跳时间设置为10秒钟,如果连续10秒钟内没有收到采集器领导者节点的心跳,则认为此采集器领导者节点丢失或节点机器的状态出了问题。ZooKeeper集群有两种工作方式:恢复模式和广播模式。在服务刚刚启动时或在采集器领导者节点丢失后,ZooKeeper集群进入恢复模式,在恢复模式下,系统首先会选举下一个注册的活动节点为采集器领导者节点,增加了系统的稳定性,然后从节点与采集器领导者节点进行状态及数据的同步,之后进入再广播模式,在广播模式里,采集器领导者节点可直接与从节点通信。
在上述技术方案中,优选地,预定任务包括:领导者节点负责与从节点进行文件属性变更的通信;领导者节点周期性地合并从节点上的文件数据;以及领导者节点定期调用预设脚本或程序对所有采集器生成的文件进行分析。
在该技术方案中,文件属性包括文件存储方式、存储位置、文件名及其它信息变更。比如,在HDFS(Hadoop Distributed File System,为一种分布式文件系统)存储方式下,采集器领导者节点会周期性地生成文件名,通过周期性的心跳机制,各采集器通过节点可以从ZooKeeper处感知到采集器领导者节点的数据变化,如文件名称信息的变化,根据最新的文件名称模板生成自己的文件。同时,采集器领导者节点会周期性地合并各从节点上的文件数据,或者通知从节点具体的存储位置及存储方式,实现了存储的多样化。另外,采集器领导者节点是动态选举产生的,但采集器领导者节点需要执行的任务是系统指定的。预设脚本包括Pig脚本和Hive脚本,预设程序包括MapReduce程序。其中,Hive是基于Hadoop的一种数据仓库工具,MapReduce程序用于大规模数据集的并行运算。这些脚本或者程序中包含着主要的业务逻辑,如合并、聚集等,采集器领导者可通过系统环境或指定参数访问到这些业务逻辑以进行分析,以针对不同的存储需求制定不同的存储策略。
在上述技术方案中,优选地,还包括:数据库108,用于存储分析后得到的数据。
在该技术方案中,分析后的数据可通过Pig脚本存储于外部数据库,如Oracle、PostgreSQL等,也可通过Sqoop导出HDFS或Hive中的数据到外部关系型数据库。其它系统可访问此数据库做进一步的分析,灵活实现了企业的分析需求。其中,Sqoop是一种开源的工具,用于在Hadoop和其他数据库之间进行数据交换。
图2示出了根据本发明的实施例的数据采集方法的流程图。
如图2所示,根据本发明的实施例的数据采集方法,包括以下步骤:
步骤202,根据不同的数据源建立不同的消息队列。针对不同的数据源建立不同的消息队列,消息队列定义在不同的主机上面,每个消息队列用来接收不同格式、不同来源的数据,可关联多个发送方和多个接收方.
步骤204,通过Zookeeper集群监控多个采集器的状态,并使消息队列中的任一消息数据仅被多台采集器中的一个采集器采集,其中每个消息队列对应于Zookeeper集群的一个持久化节点。采集器是消息队列的接收方,针对不同的消息队列可以配置不同的采集器。这样,通过支持在同一套系统中制定不同的数据源,并按照不同的数据源制定不同的采集器,就实现了数据采集的多样化,可以针对不同的存储需求制定不同的存储策略,实现对同一数据进行多种方式的并发存储,提高了处理效率。
步骤206,每个采集器在Zookeeper集群的协调下获取消息数据,采集器对应于持久化节点下的临时节点。
ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。(本释义来自链接http://baike.baidu.com/view/3061646.htm?fr=aladdin)
在上述技术方案中,优选地,还包括:Zookeeper集群根据采集器注册时间为每个消息队列动态产生采集器领导者,将采集器领导者所在持久化节点下的临时节点作为领导者节点,以及将持久化节点下的其他临时节点作为从节点;以及领导者节点负责与从节点的通信以执行预定任务。
在该技术方案中,采集器领导者由Zookeeper集群动态产生,即先注册、处于活动状态的节点会优先被考虑成为采集器领导者节点,采集器领导者节点与从节点通信以执行预定的任务,采集器领导者节点和从节点都位于消息队列的持久化节点之下,每个队列都有一个选举产生的采集器领导者节点和若干个从节点,增加了系统的有序性和稳定性。
在上述技术方案中,优选地,还包括:Zookeeper集群根据心跳时间确定领导者节点是否丢失,如果确认丢失,则选择下一个注册的采集器作为领导者节点。
在该技术方案中,Zookeeper集群可设置心跳时间,比如,将心跳时间设置为10秒钟,如果连续10秒钟内没有收到采集器领导者节点的心跳,则认为此采集器领导者节点丢失或节点机器的状态出了问题。ZooKeeper集群有两种工作方式:恢复模式和广播模式。在服务刚刚启动时或在采集器领导者节点丢失后,ZooKeeper集群进入恢复模式,在恢复模式下,系统首先会选举下一个注册的活动节点为采集器领导者节点,增加了系统的稳定性,然后从节点与采集器领导者节点进行状态及数据的同步,之后进入再广播模式,在广播模式里,采集器领导者节点可直接与从节点通信。
在上述技术方案中,优选地,预定任务包括:领导者节点负责与从节点进行文件属性变更的通信;领导者节点周期性地合并从节点上的文件数据;以及领导者节点定期调用预设脚本或程序对所有采集器生成的文件进行分析。
在该技术方案中,文件属性包括文件存储方式、存储位置、文件名及其它信息变更。比如,在HDFS(Hadoop Distributed File System,为一种分布式文件系统)存储方式下,采集器领导者节点会周期性地生成文件名,通过周期性的心跳机制,各采集器通过节点可以从ZooKeeper处感知到采集器领导者节点的数据变化,如文件名称信息的变化,根据最新的文件名称模板生成自己的文件。同时,采集器领导者节点会周期性地合并各从节点上的文件数据,或者通知从节点具体的存储位置及存储方式,实现了存储的多样化。另外,采集器领导者节点是动态选举产生的,但采集器领导者节点需要执行的任务是系统指定的。预设脚本包括Pig脚本和Hive脚本,预设程序包括MapReduce程序。其中,Hive是基于Hadoop的一种数据仓库工具,MapReduce程序用于大规模数据集的并行运算。这些脚本或者程序中包含着主要的业务逻辑,如合并、聚集等,采集器领导者可通过系统环境或指定参数访问到这些业务逻辑以进行分析,以针对不同的存储需求制定不同的存储策略。
在上述技术方案中,优选地,还包括:将分析后得到的数据存储于数据库中。
在该技术方案中,分析后的数据可通过Pig脚本存储于外部数据库,如Oracle、PostgreSQL等,也可通过Sqoop导出HDFS或Hive中的数据到外部关系型数据库。其它系统可访问此数据库做进一步的分析,灵活实现了企业的分析需求。其中,Sqoop是一种开源的工具,用于在Hadoop和其他数据库之间进行数据交换。
图3示出了根据本发明的一个实施例的数据采集系统的示意框图。
如图3所示,根据本发明的一个实施例的数据采集系统300,包括:JMS(JavaMessage Service)总线302,JMS通常用于在两个应用程序之间或分布式系统中传递信息,JMS总线302在此用于针对不同的数据源建立不同的消息队列,消息队列定义在不同的主机上面,每个消息队列接收不同格式和/或不同来源的数据,并可关联多个发送方和多个接收方;ZooKeeper集群304,ZooKeeper是应用于分布式系统的协调系统,包括配置维护、名字服务、分布式同步、组服务等,ZooKeeper集群304有恢复模式和广播模式两种工作方式,在服务启动时或在采集器Leader3061丢失后,ZooKeeper集群304进入恢复模式,系统先选举采集器Leader节点,然后从节点与采集器Leader节点进行状态及数据的同步,之后再进入广播模式,在广播模式里采集器Leader3061可以直接广播消息;采集器集群306,采集器集群306包括采集器Leader3061、采集器3062、…、采集器306N,是消息队列的接收方,针对不同的消息队列,需要配置不同的采集器集群;HDFS、Hive、HBase,为数据存储方式,采集器收集来的数据可自行选择存储方式;数据处理程序308,包括MapReduce程序3082、Hive脚本3084、Pig脚本3086三种预定义的数据处理程序;关系型数据库310,包括Oracle、PostGre等,用来存储分析数据。
在上述技术方案中,由ZooKeeper集群304协调采集器集群306经JMS总线302获取消息队列中的消息数据,队列中的数据只被一台采集器获得。ZooKeeper集群实时监控采集器集群306中各采集器的状态,每个队列对应于ZooKeeper集群中的一个持久化节点,每个采集器对应于这个持久化节点下的临时节点。消息队列节点在系统启动时建立,每个采集器启动后会自动将自己注册到指定的队列下。
系统在多台采集器中选举一个采集器Leader3061,这个采集器Leader3061是由ZooKeeper集群304动态产生的。目前的选举算法是参考机器注册的时间,即先注册、处于活动状态的节点会优先被考虑成为Leader。当前的采集器Leader3061如果丢失,则会检查下一个注册的活动节点为Leader节点。Leader节点和从节点都位于队列的持久化节点之下,每个队列都有一个选举产生的Leader节点和若干个从节点。另外,还可以设置心跳时间,比如,将心跳时间设置为10秒钟,如果连续10秒钟没有收到节点的心跳,则认为此节点丢失或节点机器的状态出了问题。
采集器Leader3061负责与从节点进行文件存储方式、存储位置、文件名及其它信息变更的通信。比如,在HDFS存储方式的情况写,Leader会周期性地生成文件名,通过周期性的心跳机制,采集器集群306包括采集器Leader3061、采集器3062、…、采集器306N从节点可以从ZooKeeper集群处感知到Leader节点的数据变化,如文件名称信息的变化,根据最新的文件名称模板生成自己的文件。同时,采集器Leader3061会周期性的合并各从节点上的文件数据,或者通知从节点具体的存储位置及存储方式。采集器Leader3061是动态选举产生的,但采集器Leader3061需要执行的任务是系统指定的。
采集器Leader3061的另一职责是定期调用数据处理程序308,包括MapReduce程序3082、Hive脚本3084或者Pig脚本3086,对采集器集群306生成的文件做数据分析。这些脚本或者程序中包含主要的业务逻辑,如合并、聚集等等,采集器Leader3061可通过系统环境或指定参数访问到这些程序。
分析后的数据可通过Pig脚本3086存储于外部的关系型数据库310,如Oracle、PostgreSQL等,也可通过Sqoop导出HDFS或Hive存储方式中的数据到关系型数据库310,其它系统可访问关系型数据库310以做进一步的分析。其中,Sqoop是一种开源的工具,用于在Hadoop和其他数据库之间进行数据交换。
以上结合附图详细说明了本发明的技术方案,通过本发明的技术方案,可以按照不同的数据源制定不同的采集模块,可以针对不同的存储需求制定不同的存储策略,用户可以根据需求方便地实现多终端、多数据源、多存储方式的数据采集与存储,能快速方便地扩展终端和存储方式,实现了数据采集和存储方式的多样性,通过实时、稳定的集群间数据通信和任务分发,可以快速地获取、处理数据,有效地控制负载均衡,加快数据的处理周期,可灵活应对企业数据的采集、存储、分析的需求,极大地提高了处理效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于Zookeeper集群的数据采集系统,其特征在于,包括:
消息队列建立单元,用于根据不同的数据源建立不同的消息队列;
Zookeeper集群,用于监控多个采集器的状态,并使所述消息队列中的任一消息数据仅被多台所述采集器中的一个采集器采集,其中每个所述消息队列对应于所述Zookeeper集群的一个持久化节点;
每个所述采集器,在所述Zookeeper集群的协调下获取消息数据,所述采集器对应于所述持久化节点下的临时节点;
所述Zookeeper集群根据采集器注册时间为每个所述消息队列动态产生采集器领导者,将所述采集器领导者所在持久化节点下的临时节点作为领导者节点,以及将所述持久化节点下的其他临时节点作为从节点;
所述领导者节点负责与所述从节点的通信以执行预定任务。
2.根据权利要求1所述的数据采集系统,其特征在于,还包括:
所述Zookeeper集群根据心跳时间确定所述领导者节点是否丢失,如果确认丢失,则选择下一个注册的采集器作为采集器领导者。
3.根据权利要求2所述的数据采集系统,其特征在于,所述预定任务包括:
所述领导者节点负责与从节点进行文件属性变更的通信;
所述领导者节点周期性地合并所述从节点上的文件数据;以及
所述领导者节点定期调用预设脚本或程序对所有采集器生成的文件进行分析。
4.根据权利要求3所述的数据采集系统,其特征在于,还包括:
数据库,用于存储分析后得到的数据。
5.一种基于Zookeeper集群的数据采集方法,其特征在于,包括:
根据不同的数据源建立不同的消息队列;
通过Zookeeper集群监控多个采集器的状态,并使所述消息队列中的任一消息数据仅被多台所述采集器中的一个采集器采集,其中每个所述消息队列对应于所述Zookeeper集群的一个持久化节点;
每个所述采集器在所述Zookeeper集群的协调下获取消息数据,所述采集器对应于所述持久化节点下的临时节点;
所述Zookeeper集群根据采集器注册时间为每个所述消息队列动态产生采集器领导者,将所述采集器领导者所在持久化节点下的临时节点作为领导者节点,以及将所述持久化节点下的其他临时节点作为从节点;以及
所述领导者节点负责与所述从节点的通信以执行预定任务。
6.根据权利要求5所述的数据采集方法,其特征在于,还包括:
所述Zookeeper集群根据心跳时间确定所述领导者节点是否丢失,如果确认丢失,则选择下一个注册的采集器作为领导者节点。
7.根据权利要求6所述的数据采集方法,其特征在于,所述预定任务包括:
所述领导者节点负责与从节点进行文件属性变更的通信;
所述领导者节点周期性地合并所述从节点上的文件数据;以及
所述领导者节点定期调用预设脚本或程序对所有采集器生成的文件进行分析。
8.根据权利要求7所述的数据采集方法,其特征在于,还包括:
将分析后得到的数据存储于数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410319209.4A CN104065741B (zh) | 2014-07-04 | 2014-07-04 | 数据采集系统和数据采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410319209.4A CN104065741B (zh) | 2014-07-04 | 2014-07-04 | 数据采集系统和数据采集方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104065741A CN104065741A (zh) | 2014-09-24 |
CN104065741B true CN104065741B (zh) | 2018-06-19 |
Family
ID=51553268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410319209.4A Active CN104065741B (zh) | 2014-07-04 | 2014-07-04 | 数据采集系统和数据采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104065741B (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104680398A (zh) * | 2015-03-12 | 2015-06-03 | 浪潮集团有限公司 | 一种针对电商用户海量行为数据的获取和存储方法 |
CN104679888A (zh) * | 2015-03-17 | 2015-06-03 | 浪潮集团有限公司 | 一种数据同步的装置及方法 |
CN104915259A (zh) * | 2015-06-15 | 2015-09-16 | 浪潮软件集团有限公司 | 一种应用于分布式采集系统的任务调度方法 |
CN105404645A (zh) * | 2015-10-27 | 2016-03-16 | 北京乐动卓越科技有限公司 | 文件服务器系统中的文件管理方法及文件服务器系统 |
CN106713398A (zh) * | 2015-11-18 | 2017-05-24 | 中兴通讯股份有限公司 | 共享存储式集群文件系统节点通信的监控方法及监控节点 |
CN106027623A (zh) * | 2016-03-14 | 2016-10-12 | 中国科学院计算技术研究所 | 分布式集群状态管理的方法及其系统 |
CN107341040A (zh) * | 2016-04-28 | 2017-11-10 | 北京神州泰岳软件股份有限公司 | 一种虚拟化云平台的数据采集方法和装置 |
CN107547589B (zh) * | 2016-06-27 | 2020-08-14 | 腾讯科技(深圳)有限公司 | 一种数据采集处理方法以及装置 |
CN106487597A (zh) * | 2016-10-26 | 2017-03-08 | 努比亚技术有限公司 | 一种基于Zookeeper的服务监控系统和方法 |
CN107070748A (zh) * | 2017-04-13 | 2017-08-18 | 周发辉 | 一种通信大数据的处理系统及方法 |
CN107395669B (zh) * | 2017-06-01 | 2020-04-07 | 华南理工大学 | 一种基于流式实时分布式大数据的数据采集方法及系统 |
CN108989157B (zh) * | 2017-06-05 | 2021-11-26 | 北京京东尚科信息技术有限公司 | 用于智能设备控制的方法、装置 |
CN109120660B (zh) * | 2017-06-26 | 2021-06-04 | 富士通株式会社 | 网络状态更新方法、装置和终端设备 |
CN107563153A (zh) * | 2017-08-03 | 2018-01-09 | 华子昂 | 一种基于Hadoop构建的PacBio测序平台IT架构 |
CN107994943B (zh) * | 2017-12-05 | 2020-04-10 | 中盈优创资讯科技有限公司 | 参数采集系统、方法及计算机可读存储介质 |
CN108197152A (zh) * | 2017-12-07 | 2018-06-22 | 深圳市华力特电气有限公司 | 一种基于领域模型的数据解析系统和方法 |
CN109189854B (zh) * | 2018-08-14 | 2021-06-08 | 新华三技术有限公司成都分公司 | 提供持续业务的方法及节点设备 |
CN109445949A (zh) * | 2018-12-07 | 2019-03-08 | 武汉轻工大学 | 一种数据采集系统和数据采集方法 |
CN111382729A (zh) * | 2018-12-27 | 2020-07-07 | 北京图森智途科技有限公司 | 一种从数据源采集数据的方法、主机和汽车 |
CN109840251B (zh) * | 2018-12-29 | 2023-11-03 | 北京奥鹏远程教育中心有限公司 | 一种大数据聚合查询方法 |
CN109857768B (zh) * | 2018-12-29 | 2023-09-08 | 电大在线远程教育技术有限公司 | 一种大数据聚合查询方法 |
CN109818823A (zh) * | 2018-12-29 | 2019-05-28 | 北京奥鹏远程教育中心有限公司 | 全链路跟踪系统 |
CN110209722A (zh) * | 2019-06-04 | 2019-09-06 | 广东铭太信息科技有限公司 | 一种用于数据交换的数据接口 |
CN112260846B (zh) * | 2019-07-22 | 2023-10-17 | 南京明德软件有限公司 | 一种试验数据采集网络拓扑结构系统 |
CN111324435A (zh) * | 2020-02-06 | 2020-06-23 | 北京奇艺世纪科技有限公司 | 分布式任务调度及注册方法、设备和分布式任务调度系统 |
CN111722980B (zh) * | 2020-06-11 | 2023-10-20 | 咪咕文化科技有限公司 | 数据采集系统和方法 |
CN112134929B (zh) * | 2020-08-28 | 2022-05-27 | 新华三技术有限公司 | 一种会话报文分析方法、装置及存储介质 |
CN112765121A (zh) * | 2021-01-08 | 2021-05-07 | 北京虹信万达科技有限公司 | 一种基于大数据服务的治理及应用系统 |
CN113239038A (zh) * | 2021-05-10 | 2021-08-10 | 北京沃东天骏信息技术有限公司 | 数据处理方法和装置 |
CN114415953B (zh) * | 2022-01-04 | 2024-01-30 | 武汉烽火技术服务有限公司 | 一种对数据源进行数据采集的方法和装置 |
CN115051981B (zh) * | 2022-05-12 | 2024-08-06 | 中国农业银行股份有限公司 | 一种基于Zookeeper的异步下载方法及装置 |
CN115102886A (zh) * | 2022-06-21 | 2022-09-23 | 上海驻云信息科技有限公司 | 一种多个采集客户端的任务调度方法及装置 |
CN115834449A (zh) * | 2022-12-13 | 2023-03-21 | 北京国泰网信科技有限公司 | 一种工业审计系统中发现及管理采集器设备的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092698A (zh) * | 2012-12-24 | 2013-05-08 | 中国科学院深圳先进技术研究院 | 云计算应用自动部署系统及方法 |
WO2013075275A1 (zh) * | 2011-11-21 | 2013-05-30 | 华为技术有限公司 | 用户信息采集方法和系统 |
CN103164435A (zh) * | 2011-12-13 | 2013-06-19 | 北大方正集团有限公司 | 一种网络数据的采集方法和系统 |
CN103227840A (zh) * | 2013-05-24 | 2013-07-31 | 上海和伍新材料科技有限公司 | 面向物联网的高并发高可用数据采集系统 |
CN103312791A (zh) * | 2013-05-24 | 2013-09-18 | 上海和伍新材料科技有限公司 | 物联网异构数据存储方法及系统 |
CN103514277A (zh) * | 2013-09-24 | 2014-01-15 | 国家电网公司 | 用电信息采集系统的任务并行处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101754244B (zh) * | 2009-12-22 | 2013-09-04 | 重庆重邮东电通信技术有限公司 | Td-scdma网络集中监测系统的数据采集处理方法 |
-
2014
- 2014-07-04 CN CN201410319209.4A patent/CN104065741B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013075275A1 (zh) * | 2011-11-21 | 2013-05-30 | 华为技术有限公司 | 用户信息采集方法和系统 |
CN103164435A (zh) * | 2011-12-13 | 2013-06-19 | 北大方正集团有限公司 | 一种网络数据的采集方法和系统 |
CN103092698A (zh) * | 2012-12-24 | 2013-05-08 | 中国科学院深圳先进技术研究院 | 云计算应用自动部署系统及方法 |
CN103227840A (zh) * | 2013-05-24 | 2013-07-31 | 上海和伍新材料科技有限公司 | 面向物联网的高并发高可用数据采集系统 |
CN103312791A (zh) * | 2013-05-24 | 2013-09-18 | 上海和伍新材料科技有限公司 | 物联网异构数据存储方法及系统 |
CN103514277A (zh) * | 2013-09-24 | 2014-01-15 | 国家电网公司 | 用电信息采集系统的任务并行处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104065741A (zh) | 2014-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104065741B (zh) | 数据采集系统和数据采集方法 | |
CN111400326B (zh) | 一种智慧城市数据管理系统及其方法 | |
CN110532078A (zh) | 一种边缘计算调度优化方法及系统 | |
CN110569252B (zh) | 一种数据处理系统及方法 | |
CN103607424B (zh) | 一种服务器连接方法及服务器系统 | |
CN111966289A (zh) | 基于Kafka集群的分区优化方法和系统 | |
CN105069029B (zh) | 一种实时etl系统及方法 | |
Skorin-Kapov et al. | Energy efficient and quality-driven continuous sensor management for mobile IoT applications | |
CN104063560B (zh) | 基于云计算平台的调度系统及调度方法 | |
CN110868338B (zh) | 一种预警监控方法 | |
CN110083504B (zh) | 分布式任务的运行状态监控方法及装置 | |
CN105262634A (zh) | 一种监控阈值的生成方法、装置和系统 | |
CN110471935A (zh) | 一种数据操作的执行方法、装置、设备和存储介质 | |
CN110909072B (zh) | 一种数据表建立方法、装置及设备 | |
CN106502842A (zh) | 数据恢复方法及系统 | |
US20210185123A1 (en) | Distributed information storage system, methods and programs | |
CN115630122A (zh) | 一种数据同步方法、装置、存储介质和计算机设备 | |
CN105955895B (zh) | 分布式消息队列的逻辑控制方法和装置、数据处理设备 | |
CN116136801A (zh) | 云平台的数据处理方法、装置、电子设备及存储介质 | |
CN114237850A (zh) | 一种量子计算分布式队列管理方法及系统 | |
CN107249029B (zh) | 主动领取任务的方法、工作节点、系统及存储介质 | |
CN114785788B (zh) | 一种流程交互系统和方法 | |
CN105700889A (zh) | 一种基于psp和tsp的软件过程改进系统 | |
CN110896358A (zh) | 一种nfv中资源数据的动态更新方法和装置 | |
CN116467071B (zh) | 算力网络中算力感知的方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100094 Haidian District North Road, Beijing, No. 68 Applicant after: Yonyou Network Technology Co., Ltd. Address before: 100094 Beijing city Haidian District North Road No. 68, UFIDA Software Park Applicant before: UFIDA Software Co., Ltd. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |