CN108073705A - 一种分布式海量数据聚合采集方法 - Google Patents

一种分布式海量数据聚合采集方法 Download PDF

Info

Publication number
CN108073705A
CN108073705A CN201711365638.5A CN201711365638A CN108073705A CN 108073705 A CN108073705 A CN 108073705A CN 201711365638 A CN201711365638 A CN 201711365638A CN 108073705 A CN108073705 A CN 108073705A
Authority
CN
China
Prior art keywords
solrcloud
data
flume
clusters
collection
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.)
Granted
Application number
CN201711365638.5A
Other languages
English (en)
Other versions
CN108073705B (zh
Inventor
苑晓龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Inspur Government Cloud Management and Operation Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201711365638.5A priority Critical patent/CN108073705B/zh
Publication of CN108073705A publication Critical patent/CN108073705A/zh
Application granted granted Critical
Publication of CN108073705B publication Critical patent/CN108073705B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/244Grouping and aggregation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种分布式海量数据聚合采集方法,采用SolrCloud分布式全文检索系统作为Flume Sink子组件的目标存储,由于SolrCloud集群的节点和Collection等配置信息使用的Zookeeper集群保存的特性,通过利用对相应znode节点注册Watcher的方法实现了近实时读取Collection的Schema信息,减少了一些冗余的配置项,实现了不需要重启Flume Agent即可获取最新的Schema配置信息;减少了发送到SolrCloud集群的数据量,提升了数据写入的效率。

Description

一种分布式海量数据聚合采集方法
技术领域
本发明涉及数据采集领域,尤其涉及一种分布式海量数据聚合采集方法。
背景技术
在云计算时代,面对海量数据,传统的ETL(Extraction-Transformation-Loading)工具显然力不从心,主要是数据转换开销太大,在性能上无法满足海量数据的采集需求。为了提高海量数据采集的性能,目前已经产生了各种成熟并且效果非常好的海量数据采集组件,比如常用的Apache基金会的开源Flume组件。Flume是一个分布式、可靠和高可用的海量数据聚合系统。支持在系统中采集不同类型数据源的数据,同时,支持对数据进行简单处理,并将其下沉到不同数据接收方。
现有将数据下沉到solr的下沉组件是flume-ng-morphline-solr-sink组件,它依赖于Morphline ETL工具,即它基于Morphline的配置项十分复杂,增加了使用者的负担,并且它没有提供对具有相同UniqueKey记录的合并操作,尤其是针对Solr集合中记录局部字段更新,包括多值字段的值去重累计聚合支撑不足,从而增加了SolrCloud集群的压力。
发明内容
为了克服上述现有技术中的不足,本发明提供一种分布式海量数据聚合采集方法,方法包括:
步骤一,基于SolrCloud集群实现继承自AbstractSink抽象类和Configurable接口的SolrSink类;
步骤二,定义flume-solr-sink组件sink类型参数的值为solr;
步骤三,SolrSink类的Configurable接口通过Configure(Context context)模块读取有关SolrCloud的相关配置参数;
步骤四,SolrSink类覆盖实现AbstractSink类的start()方法,通过读取SolrCloud在Zookeeper集群中Collection schema相应的znode节点数据,同时在znode注册一个SolrSchemaWatcher类的实例对象,来解析Collection的schema信息,获取需要的UniqueKey和多值字段的信息;
步骤五,基于SolrSink类的抽象类AbstractSink的process()模块,通过process()模块循环处理接收到的数据单元,将接收到的数据单元按照SolrCloud Collection中相应的字段定义到SolrInputDocument类对象实例中;
步骤六,针对数据源中的不同数据格式,基于SolrCloud集群定义AbstractParser抽象类,将Text格式数据、Json格式数据、Avro格式数据、Protobuf格式数据均转换为SolrCloud Collection的Schema中定义的类型。
优选地,步骤三还包括,SolrCloud在Zookeeper集群中的注册znode节点,集合名称,写入字段,是否启用聚合功能,以及批量写入SolrCloud的阈值。
优选地,步骤五还包括,按照预设批次将接收到的数据单元按照SolrCloudCollection中相应的字段定义追加到SolrInputDocument类对象实例中;
如某一批次接收到的数据单元出现异常时,按照异常事务处理,将接收到的异常数据单元定义到异常SolrInputDocument类对象实例中。
优选地,步骤一之前还包括:
在系统中安装部署SolrCloud集群;
将flume-solr-sink数据下沉组件的Jar包分发到Flume的每个节点机器的类加载路径;
配置数据采集的Sink的Type为solr。
优选地,步骤配置数据采集的Sink的Type为solr之后,启动所有Flume组件的Agent进程,使用分布式海量数据聚合采集方式进行数据采集。
优选地,步骤一之前还包括:
在系统中安装部署Zookeeper集群。
从以上技术方案可以看出,本发明具有以下优点:
本发明采用SolrCloud分布式全文检索系统作为Flume Sink子组件的目标存储,设计了flume-solr-sink数据下沉组件。通过利用对相应znode节点注册Watcher的方法实现了近实时读取Collection的Schema信息,减少了一些冗余的配置项,实现了不需要重启Flume Agent即可获取最新的Schema配置信息;通过继承实现AbstractParser类的方式支持解析Json、Text、Avro以及Protobuf等格式的数据;通过在组件中分批次聚合数据单元(包含多值字段的值累计聚合),减少了发送到SolrCloud集群的数据量,提升了数据写入的效率,提升了Flume数据采集的性能。
附图说明
为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为分布式海量数据聚合采集方法流程图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将运用具体的实施例及附图,对本发明保护的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利保护的范围。
本实施例提供一种分布式海量数据聚合采集方法,如图1所示,方法包括:
S1,基于SolrCloud集群实现继承自AbstractSink抽象类和Configurable接口的SolrSink类;
S2,定义flume-solr-sink组件sink类型参数的值为solr;
S3,SolrSink类的Configurable接口通过Configure(Context context)模块读取有关SolrCloud的相关配置参数;
S4,SolrSink类覆盖实现AbstractSink类的start()方法,通过读取SolrCloud在Zookeeper集群中Collection schema相应的znode节点数据,同时在znode注册一个SolrSchemaWatcher类的实例对象,来解析Collection的schema信息,获取需要的UniqueKey和多值字段的信息;
S5,基于SolrSink类的抽象类AbstractSink的process()模块,通过process()模块循环处理接收到的数据单元,将接收到的数据单元按照SolrCloud Collection中相应的字段定义到SolrInputDocument类对象实例中;
S6,针对数据源中的不同数据格式,基于SolrCloud集群定义AbstractParser抽象类,将Text格式数据、Json格式数据、Avro格式数据、Protobuf格式数据均转换为SolrCloudCollection的Schema中定义的类型。SolrSink在将数据单元写入SolrCloud Collection之前会依赖所述的转换类转化数据类型。
本实施例中,步骤三还包括,SolrCloud在Zookeeper集群中的注册znode节点,集合名称,写入字段,是否启用聚合功能,以及批量写入SolrCloud的阈值。
本实施例中,步骤五还包括,按照预设批次将接收到的数据单元按照SolrCloudCollection中相应的字段定义追加到SolrInputDocument类对象实例中;
如某一批次接收到的数据单元出现异常时,按照异常事务处理,将接收到的异常数据单元定义到异常SolrInputDocument类对象实例中。
本实施例中,步骤一之前还包括:
在系统中安装部署SolrCloud集群;
将flume-solr-sink数据下沉组件的Jar包分发到Flume的每个节点机器的类加载路径;
配置数据采集的Sink的Type为solr。
本实施例中,步骤配置数据采集的Sink的Type为solr之后,启动所有Flume组件的Agent进程,使用分布式海量数据聚合采集方式进行数据采集。
本实施例中,步骤一之前还包括:在系统中安装部署Zookeeper集群。
通过自定义的solr-sink组件,解析Json、Text、Avro、Protobuf等格式的源数据,分批次写入SolrCloud的Collection中;提供了近实时读取SolrCloud在Zookeeper集群相应Collection schema的znode节点数据,解析获取我们需要的UniqueKey字段以及多值字段等schema信息;并且支持将每个批次中的数据进行汇总聚合(包括多值字段的去重累计聚合)功能。其次我们设计的自定义solr-sink组件相对于flume-ng-morphlie-solr-sink的配置项简便易用,提高了研发人员配置的效率。
采用SolrCloud分布式全文检索系统作为Flume Sink子组件的目标存储,设计了flume-solr-sink数据下沉组件。由于SolrCloud集群的节点和Collection等配置信息使用的Zookeeper集群保存的特性,通过利用对相应znode节点注册Watcher的方法实现了近实时读取Collection的Schema信息,减少了一些冗余的配置项,实现了不需要重启FlumeAgent即可获取最新的Schema配置信息;通过继承实现AbstractParser类的方式支持解析Json、Text、Avro以及Protobuf等格式的数据;通过在组件中分批次聚合单条Event数据(包含多值字段的值累计聚合),减少了发送到SolrCloud集群的数据量,提升了数据写入的效率,提升了Flume数据采集的性能。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (6)

1.一种分布式海量数据聚合采集方法,其特征在于,方法包括:
步骤一,基于SolrCloud集群实现继承自AbstractSink抽象类和Configurable接口的SolrSink类;
步骤二,定义flume-solr-sink组件sink类型参数的值为solr;
步骤三,SolrSink类的Configurable接口通过Configure(Context context)模块读取有关SolrCloud的相关配置参数;
步骤四,SolrSink类覆盖实现AbstractSink类的start()方法,通过读取SolrCloud在Zookeeper集群中Collection schema相应的znode节点数据,同时在znode注册一个SolrSchemaWatcher类的实例对象,来解析Collection的schema信息,获取需要的UniqueKey和多值字段的信息;
步骤五,基于SolrSink类的抽象类AbstractSink的process()模块,通过process()模块循环处理接收到的数据单元,将接收到的数据单元按照SolrCloud Collection中相应的字段定义到SolrInputDocument类对象实例中;
步骤六,针对数据源中的不同数据格式,基于SolrCloud集群定义AbstractParser抽象类,将Text格式数据、Json格式数据、Avro格式数据、Protobuf格式数据均转换为SolrCloudCollection的Schema中定义的类型。
2.根据权利要求1所述的分布式海量数据聚合采集方法,其特征在于,
步骤三还包括,SolrCloud在Zookeeper集群中的注册znode节点,集合名称,写入字段,是否启用聚合功能,以及批量写入SolrCloud的阈值。
3.根据权利要求1所述的分布式海量数据聚合采集方法,其特征在于,
步骤五还包括,按照预设批次将接收到的数据单元按照SolrCloud Collection中相应的字段定义追加到SolrInputDocument类对象实例中;
如某一批次接收到的数据单元出现异常时,按照异常事务处理,将接收到的异常数据单元定义到异常SolrInputDocument类对象实例中。
4.根据权利要求1所述的分布式海量数据聚合采集方法,其特征在于,
步骤一之前还包括:
在系统中安装部署SolrCloud集群;
将flume-solr-sink数据下沉组件的Jar包分发到Flume的每个节点机器的类加载路径;
配置数据采集的Sink的Type为solr。
5.根据权利要求4所述的分布式海量数据聚合采集方法,其特征在于,
步骤配置数据采集的Sink的Type为solr之后,启动所有Flume组件的Agent进程,使用分布式海量数据聚合采集方式进行数据采集。
6.根据权利要求1所述的分布式海量数据聚合采集方法,其特征在于,
步骤一之前还包括:
在系统中安装部署Zookeeper集群。
CN201711365638.5A 2017-12-18 2017-12-18 一种分布式海量数据聚合采集方法 Active CN108073705B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711365638.5A CN108073705B (zh) 2017-12-18 2017-12-18 一种分布式海量数据聚合采集方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711365638.5A CN108073705B (zh) 2017-12-18 2017-12-18 一种分布式海量数据聚合采集方法

Publications (2)

Publication Number Publication Date
CN108073705A true CN108073705A (zh) 2018-05-25
CN108073705B CN108073705B (zh) 2022-06-14

Family

ID=62158377

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711365638.5A Active CN108073705B (zh) 2017-12-18 2017-12-18 一种分布式海量数据聚合采集方法

Country Status (1)

Country Link
CN (1) CN108073705B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110532060A (zh) * 2019-08-10 2019-12-03 佳都新太科技股份有限公司 一种混合网络环境数据采集方法及系统
CN111628956A (zh) * 2019-02-28 2020-09-04 阿里巴巴集团控股有限公司 一种网络请求传输数据的格式转换方法、装置和系统
CN114860349A (zh) * 2022-07-06 2022-08-05 深圳华锐分布式技术股份有限公司 数据加载方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140222843A1 (en) * 2013-02-01 2014-08-07 Netapp, Inc. Systems, Methods, and computer Program Products to Ingest, Process, and Output Large Data
CN104036025A (zh) * 2014-06-27 2014-09-10 蓝盾信息安全技术有限公司 一种基于分布式的海量日志采集系统
CN104993957A (zh) * 2015-06-29 2015-10-21 浪潮软件股份有限公司 一种为使用Log4j的分布式应用提供云端日志服务的方法
CN106250410A (zh) * 2016-07-21 2016-12-21 广州安望信息科技有限公司 一种基于flume系统的数据处理方法及其装置
CN106855837A (zh) * 2016-12-15 2017-06-16 咪咕文化科技有限公司 一种基于Flume的数据处理方法及装置
CN107220348A (zh) * 2017-05-27 2017-09-29 郑州云海信息技术有限公司 一种基于Flume与Alluxio的数据收集方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140222843A1 (en) * 2013-02-01 2014-08-07 Netapp, Inc. Systems, Methods, and computer Program Products to Ingest, Process, and Output Large Data
CN104036025A (zh) * 2014-06-27 2014-09-10 蓝盾信息安全技术有限公司 一种基于分布式的海量日志采集系统
CN104993957A (zh) * 2015-06-29 2015-10-21 浪潮软件股份有限公司 一种为使用Log4j的分布式应用提供云端日志服务的方法
CN106250410A (zh) * 2016-07-21 2016-12-21 广州安望信息科技有限公司 一种基于flume系统的数据处理方法及其装置
CN106855837A (zh) * 2016-12-15 2017-06-16 咪咕文化科技有限公司 一种基于Flume的数据处理方法及装置
CN107220348A (zh) * 2017-05-27 2017-09-29 郑州云海信息技术有限公司 一种基于Flume与Alluxio的数据收集方法

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
KYOO-SUNG NOH 等: "Bigdata Platform Design and Implementation Model", 《INDIAN JOURNAL OF SCIENCE AND TECHNOLOGY》 *
ORANGEJOKE: "Flume+Solr+log4j搭建web日志采集系统", 《HTTPS://MY.OSCHINA.NET/TIGERLENE/BLOG/1475239》 *
PANGBANG: "【Apache ZooKeeper】为ZNode设置watcher", 《HTTPS://WWW.CNBLOGS.COM/PANGBLOG/P/3329039.HTML》 *
STEVE HOFFMAN: "《Apache Flume: Distributed Log Collection for Hadoop》", 31 July 2013 *
于秦: "基于Apache FIume的大数据日志收集系统", 《中国信通信》 *
孟尧: "flume的自定义sink-Kafka", 《HTTPS://WWW.CNBLOGS.COM/MENGYAO/P/4526058.HTML》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111628956A (zh) * 2019-02-28 2020-09-04 阿里巴巴集团控股有限公司 一种网络请求传输数据的格式转换方法、装置和系统
CN110532060A (zh) * 2019-08-10 2019-12-03 佳都新太科技股份有限公司 一种混合网络环境数据采集方法及系统
CN110532060B (zh) * 2019-08-10 2022-05-03 佳都科技集团股份有限公司 一种混合网络环境数据采集方法及系统
CN114860349A (zh) * 2022-07-06 2022-08-05 深圳华锐分布式技术股份有限公司 数据加载方法、装置、设备及介质

Also Published As

Publication number Publication date
CN108073705B (zh) 2022-06-14

Similar Documents

Publication Publication Date Title
CN110851338B (zh) 异常检测方法、电子设备及存储介质
US10229129B2 (en) Method and apparatus for managing time series database
US20180260621A1 (en) Picture recognition method and apparatus, computer device and computer- readable medium
CN107391744B (zh) 数据存储、读取方法、装置及其设备
CN108073705A (zh) 一种分布式海量数据聚合采集方法
US10002142B2 (en) Method and apparatus for generating schema of non-relational database
US10089370B2 (en) Extraction device, data processing system, and extraction method
US10701213B2 (en) Dynamically generating an aggregation routine
RU2753189C2 (ru) Система для подготовки сетевого трафика для быстрого анализа
CN112073524B (zh) 基于物联网且有数字媒体交互系统的智能信息化发布系统
CN109343836B (zh) 数据序列化、数据反序列方法、装置及设备
CN106021301B (zh) 一种不同文件格式的数据比对系统及方法
CN110263824A (zh) 模型的训练方法、装置、计算设备及计算机可读存储介质
CN107733712A (zh) 云计算系统中服务资源的监控方法和装置
CN110716970A (zh) 异构数据同构化处理方法、装置、计算机设备及存储介质
CN111428978A (zh) 一种补贴计算方法、装置、电子设备及存储介质
CN108062399A (zh) 数据处理方法及装置
CN110751092A (zh) 基于物联网的农业监控方法及装置、存储介质及电子设备
US10140474B2 (en) Techniques for context information management
CN114495137A (zh) 票据异常检测模型生成方法与票据异常检测方法
US10558647B1 (en) High performance data aggregations
CN113220551A (zh) 指标趋势预测及预警方法、装置、电子设备及存储介质
CN110019518B (zh) 数据处理方法及设备
CN110264333A (zh) 一种风险规则确定方法和装置
WO2016131315A1 (zh) 网管数据处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200522

Address after: Building S01, Inspur Science Park, No. 1036, Inspur Road, high tech Zone, Jinan City, Shandong Province, 250000

Applicant after: Tidal Cloud Information Technology Co.,Ltd.

Address before: 450000 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601

Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
CB02 Change of applicant information

Address after: Building S01, Langchao Science Park, 1036 Langchao Road, high tech Zone, Jinan City, Shandong Province

Applicant after: Inspur cloud Information Technology Co.,Ltd.

Address before: Building S01, Langchao Science Park, 1036 Langchao Road, high tech Zone, Jinan City, Shandong Province

Applicant before: Tidal Cloud Information Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221008

Address after: No. 5-398, Yunhan Avenue, Shuitu Hi tech Industrial Park, Beibei District, Chongqing 400722

Patentee after: Chongqing Inspur Government Cloud Management and Operation Co.,Ltd.

Address before: Building S01, Langchao Science Park, 1036 Langchao Road, high tech Zone, Jinan City, Shandong Province

Patentee before: Inspur cloud Information Technology Co.,Ltd.