CN106648722A - 基于大数据的Flume接收端数据处理方法和装置 - Google Patents

基于大数据的Flume接收端数据处理方法和装置 Download PDF

Info

Publication number
CN106648722A
CN106648722A CN201610309692.7A CN201610309692A CN106648722A CN 106648722 A CN106648722 A CN 106648722A CN 201610309692 A CN201610309692 A CN 201610309692A CN 106648722 A CN106648722 A CN 106648722A
Authority
CN
China
Prior art keywords
source
header
event
data
timestamp
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
CN201610309692.7A
Other languages
English (en)
Other versions
CN106648722B (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.)
Shenzhen Frontsurf Information Technology Co Ltd
Original Assignee
Shenzhen Frontsurf 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 Shenzhen Frontsurf Information Technology Co Ltd filed Critical Shenzhen Frontsurf Information Technology Co Ltd
Priority to CN201610309692.7A priority Critical patent/CN106648722B/zh
Publication of CN106648722A publication Critical patent/CN106648722A/zh
Application granted granted Critical
Publication of CN106648722B publication Critical patent/CN106648722B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

本发明揭示了一种基于大数据的Flume接收端数据处理方法和装置,其中方法包括:获取Event,根据Event header中的信息对Event排序;通过指定的函数查找对应的Source‑body;如果有对应的Source‑body,则直接标记,如果没有,则使用默认的Source‑body,并动态加载Source‑body,形成一个新的Source‑body;选择对应的Source‑body后,对应生成一个队列,新的Event数据会添加到其队列中;当对应的Source‑body类被选中后,Source‑body以其数据类型选择对应的channel,并与之建立联系。本发明提高数据处理的灵活性。

Description

基于大数据的Flume接收端数据处理方法和装置
技术领域
本发明涉及到大数据Flume接收端数据处理领域,特别是涉及到一种基于大数据的Flume接收端数据处理方法和装置。
背景技术
在互联网快速发展的时代,网络系统日志、网络应用运行日志、网络用户行为日志及流量等各类日志被大量产生。同时由于云等新兴技术的兴起和发展,迫切需要将各类日志信息实时的统一的收集汇总到指定位置,以供技术及相关人员读取分析,从而可以提供更好的服务。在这种背景下Apache Flume NG作为一款轻量级,稳定的实时日志收集系统被开发并广泛应用在大数据行业。
参照图1,现有Flume的框架图,其主要由三部分组成:Source(源数据端)、Channel(通道)、Sink(输出端)。Source负责链接源数据,Channel负责传输数据,Sink负责接受数据,整个框架称为Flume的一个Agent(代理)。
数据形式在Source中以Event(事件)的形式传输。Event由Headers(报头),Body(数据)组成。Header中包含描述数据的多项键值-数值对,Body为序列化后的数据。
整个数据流程即可被描述为,数据通过对应的数据格式的Source组件,例如通过AvroSource或者ThriftSource抓取数据,并传送到相应channel中,再由channel传入到设置的Sink中。其中Avro和Thrift为数据传输中的中间件。在这种架构下,对数据源的格式需要匹配,即需要匹配avro或thrift参数来设置Source中的相关参数,灵活性较低。
发明内容
本发明的主要目的为提供一种灵活性高的基于大数据的Flume接收端数据处理方法和装置。
为了实现上述发明目的,本发明提出一种基于大数据的Flume接收端数据处理方法,包括:
获取Event,并根据Event header中的信息对Event进行排序;
通过指定的函数查找对应的Source-body;如果有对应的Source-body,则直接标记,如果没有,则使用默认的Source-body,并动态加载Source-body,形成一个新的Source-body;
选择对应的Source-body后,对应生成一个队列,当新近的Event header与其对应的Source-body队列中的指定信息相同后,新的Event数据会添加到其队列中;
当对应的Source-body类被选中后,Source-body以其数据类型选择对应的channel,并与之建立联系。
进一步地,所述获取Event,并根据Event header中的信息对Event进行排序的步骤之前,包括:
将Source拆分Source-header和Source-body,并在每个时间Event中定义Header信息。
进一步地,所述将Source拆分Source-header和Source-body,并在每个时间Event中定义Header信息的步骤,包括:
在Source-header中设置指定参数,通过所述指定参数在Source-header中进行解析。
进一步地,所述指定参数包括:
指明Event数据所使用的数据传输所用类型的DATATYPE;
数据源的IP地址或域名的ONFIG_BIND;
数据源所使用的通讯端口的ONFIG_PORT;以及,
时间戳函数生成时间戳的TIMESTAMP。
进一步地,在Source-header中设置指定参数,通过所述指定参数在Source-header中进行解析的步骤,包括:
所述TIMESTAMP还生成16位数位作为字典数位;其中所述字典位的生成规则为12位IP地址加4位线程PID,若PID小于4位时左边补零,大于四位时取后四位;当大于两个的具有相同系统时间戳的数据由不同线程传入Source header时,Source-header根据字典位中的线程数位进行排序,较小的数据会被先传入相应Source-body中。
本发明还提供一种基于大数据的Flume接收端数据处理装置,包括:
获取单元,用于获取Event,并根据Event header中的信息对Event进行排序;
查找判断单元,用于通过指定的函数查找对应的Source-body;如果有对应的Source-body,则直接标记,如果没有,则使用默认的Source-body,并动态加载Source-body,形成一个新的Source-body;
选择生成单元,用于选择对应的Source-body后,对应生成一个队列,当新近的Event header与其对应的Source-body队列中的指定信息相同后,新的Event数据会添加到其队列中;
选择建立单元,用于当对应的Source-body类被选中后,Source-body以其数据类型选择对应的channel,并与之建立联系。
进一步地,所述基于大数据的Flume接收端数据处理装置,还包括:
拆分定义单元,用于将Source拆分Source-header和Source-body,并在每个时间Event中定义Header信息。
进一步地,所述拆分定义单元包括:
解析模块,用于在Source-header中设置指定参数,通过所述指定参数在Source-header中进行解析。
进一步地,所述指定参数包括:
指明Event数据所使用的数据传输所用类型的DATATYPE;
数据源的IP地址或域名的ONFIG_BIND;
数据源所使用的通讯端口的ONFIG_PORT;以及,
时间戳函数生成时间戳的TIMESTAMP。
进一步地,所述解析模块包括:
生成子模块,用于所述TIMESTAMP还生成16位数位作为字典数位;其中所述字典位的生成规则为12位IP地址加4位线程PID,若PID小于4位时左边补零,大于四位时取后四位;当大于两个的具有相同系统时间戳的数据由不同线程传入Source header时,Source-header根据字典位中的线程数位进行排序,较小的数据会被先传入相应Source-body中。
本发明的基于大数据的Flume接收端数据处理方法和装置,因为是针对数据类型查找数据类型,所以允许动态加载Source-body,即当原来没有的数据类型被开发出来后,可以通过加载其对应的Source-body来处理其数据传输,而不使用默认Source-body,提高效率、灵活性和通用性。
附图说明
图1为现有Flume的框架图;
图2为本发明一实施例的的基于大数据的Flume接收端数据处理方法的流程示意图;
图3为本发明一实施例的的基于大数据的Flume接收端数据处理方法的流程示意图;
图4为本发明一实施例的重构后的Flume接收端的框架图;
图5为本发明一实施例的基于大数据的Flume接收端数据处理装置的结构示意框图;
图6为本发明一实施例的基于大数据的Flume接收端数据处理装置的结构示意框图;
图7为本发明一实施例的拆分定义单元的结构示意框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图2,本发明实施例提出一种基于大数据的Flume接收端数据处理方法,包括步骤:
S1、获取Event,并根据Event header中的信息对Event进行排序;
S2、通过指定的函数查找对应的Source-body;如果有对应的Source-body,则直接标记,如果没有,则使用默认的Source-body,并动态加载Source-body,形成一个新的Source-body;
S3、选择对应的Source-body后,对应生成一个队列,当新近的Event header与其对应的Source-body队列中的指定信息相同后,新的Event数据会添加到其队列中;
S4、当对应的Source-body类被选中后,Source-body以其数据类型选择对应的channel,并与之建立联系。
如上述步骤S1所述,上述Event由数据源产生,包括Headers和Body;上述Eventheader中包含描述数据的多项键值-数值对,Body为序列化后的数据。本实施例中,对Event进行排序,防止数据源产生的Event有多种数据类型。
如上述步骤S2所述,当排序完成后Source-header会通过如switch()函数读取的DATATYPE的值来寻找对应的Source-body。例如,如果Event header中DATATYPE为REST-JSON时,则查看是否有Source-rest-json这个类,如果有,则标记,并在后续中调用这个类;如果没有这个类,则使用默认的Source-body类。因为是针对数据类型查找数据类型,所以允许动态加载Source-body,即当原来没有的数据类型例如A被开发出来后,可以通过加载其Source-A来处理其数据传输,而不使用默认Source-body,来提高效率和灵活性。
如上述步骤S3所述,当选择了一个Source-body后,会对应生成一个队列,当新近的Event header与其对应的Source-body队列中的Event header的指定信息相同后,新的Event数据会添加到其队列中,比如,当处理时间戳信息不同,而其他信息均相同的时候,新的Event数据会添加到其队列中。
如上述步骤S4所述,建立新的数据通道,数据通道建立联系后,数据的传输等与原有Flume的工作原理相同。
参照图3和图4,本实施例中,上述获取Event,并根据Event header中的信息对Event进行排序的步骤S1之前,包括:
S10、将Source拆分Source-header和Source-body,并在每个时间Event中定义Header信息。
如上述步骤S10所述,将Source端进行了拆分重构。将Source拆分为两大部分,Source-header和Source-body,并在每个时间Event中定义Header信息;Event是一个事件,由一个重新定义的header及数据组成;Src-header为Source-header缩写,负责处理Event中重新定义的header信息;Source-body可以由多个组成,针对avro、thrift数据源的为Source-avro、Source-thrift,在图4中简写为Src-avro、Src-thrift,当数据源类型不指定时即流向默认的Source-body简写为Src-body。其他架构组件与原Flume一致,在此不做赘述。
本实施例中,上述将Source拆分Source-header和Source-body,并在每个时间Event中定义Header信息的步骤S10,包括:
S11、在Source-header中设置指定参数,通过所述指定参数在Source-header中进行解析。
如上述步骤S11所述,Event由数据源产生,由两部分组成,header和数据。其中在Source-headerr中定义一系列必填参数用于Source-header中进行解析并进行后续操作。
本实施例中,上述指定参数包括:
指明Event数据所使用的数据传输所用类型的DATATYPE,其包括含但不限于如TCompactProtocol、TBinaryProtocol、Protocol Buffers、REST-XML和REST-JSON等;
数据源的IP地址或域名的ONFIG_BIND,其中内部网络时建议使用IP地址,跨域调用时推荐使用域名;
数据源所使用的通讯端口的ONFIG_PORT,例如9999等;以及,
时间戳函数生成时间戳的TIMESTAMP,其中,为了使数据源所发送的数据可以根据Source的重要性并按照时间顺序进行传输,使用Lamport面包房算法(简称Lamport算法)来定义TIMESTAMP函数。
本实施例中,上述在Source-header中设置指定参数,通过所述指定参数在Source-header中进行解析的步骤S11,包括:
S110、所述TIMESTAMP还生成16位数位作为字典数位;其中所述字典位的生成规则为12位IP地址加4位线程PID,若PID小于4位时左边补零,大于四位时取后四位;当大于两个的具有相同系统时间戳的数据由不同线程传入Source header时,Source-header根据字典位中的线程数位进行排序,较小的数据会被先传入相应Source-body中。
如上述步骤S110所述,本步骤可以保证多线程的情况下,数据是以Source的重要性来进行传输的。
本实施例中,上述步骤S110之前一般还设置有同一进程中,事件的表达方式,比如事件E1和E2发生的时间分别为T1和T2,表达式T1<T2表示为“事件E1在事件E2之前发生”。那么对于在同一进程中,我们还定义如下规则:
1.若事件E1在事件E2之前发生,则TIMESTAMP(E1)<TIMESTAMP(E2);
2.若事件E1和E2分别代表发送一个消息和接收该消息,则TIMESTAMP(E1)<TIMESTAMP(E2);
3.对所有不同的事件E1≠E2,则TIMESTAMP(E1)≠TIMESTAMP(E2);
定义上述三条规则后,我们保证在同一线程内,数据的传输是以时间一致性进行传输的。
在一具体实施例中,首先,Source-header读取TIMESTAMP,对Event进行排序。排序中先以时间戳数位进行排序,本实施例中使用quicksort排序方法进行排序,在其它实施例中,也可以使用其其它的排序方法。当时间排序之后,如有时间戳相同数据,再以其中字典位按照IP先排序,线程PID后排序的方式进行再排序,防止数据源产生的Event有多种数据类型。其次,当排序完成后Source-header会通过switch()函数读取的DATATYPE的值来寻找对应的Source-body。例如,如果Event header中DATATYPE为REST-JSON时,则查看是否有Source-rest-json这个类,如果有,则标记,并在后续中调用这个类;如果没有这个类,则使用默认的Source-body类。因为是针对数据类型查找数据类型,所以允许动态加载Source-body,即当原来没有的数据类型例如A被开发出来后,可以通过加载其Source-A来处理其数据传输,而不使用默认Source-body,来提高效率。然后,当选择了一个Source-body后,会对应生成一个队列,当新近的Event header与其对应的Source-body队列中的Event header除时间戳外相同后,新的Event数据会添加到其队列中。最后,当对应的Source-body类被选中后,Source-body以其数据类型选择对应的channel,并与之建立联系,此处之后即与原有Flume的工作原理相同。
在另一具体实施例中,进行实验数据比较分析,如下:
1)测试方法:
a.设立一台服务器,底层收集服务器系统日志。
b.分别以Thrift、Avro、JSON等传输方式实现通信。
c.分别使用Flume和重构后的Flume与日志收集服务器集成。
d.每次测试时,只使用单一传输方式,并使用同一端口进行测试。
2)测试结果,如下表:
本发明的基于大数据的Flume接收端数据处理方法,因为是针对数据类型查找数据类型,所以允许动态加载Source-body,即当原来没有的数据类型被开发出来后,可以通过加载其对应的Source-body来处理其数据传输,而不使用默认Source-body,提高效率、灵活性和通用性。
参照图5,本发明实施例还提供一种基于大数据的Flume接收端数据处理装置,包括:
获取单元10,用于获取Event,并根据Event header中的信息对Event进行排序;
查找判断单元20,用于通过指定的函数查找对应的Source-body;如果有对应的Source-body,则直接标记,如果没有,则使用默认的Source-body,并动态加载Source-body,形成一个新的Source-body;
选择生成单元30,用于选择对应的Source-body后,对应生成一个队列,当新近的Event header与其对应的Source-body队列中的指定信息相同后,新的Event数据会添加到其队列中;
选择建立单元40,用于当对应的Source-body类被选中后,Source-body以其数据类型选择对应的channel,并与之建立联系。
如上述获取单元10,上述Event由数据源产生,包括Headers和Body;上述Eventheader中包含描述数据的多项键值-数值对,Body为序列化后的数据。本实施例中,对Event进行排序,防止数据源产生的Event有多种数据类型。
如上述查找判断单元20,当排序完成后Source-header会通过如switch()函数读取的DATATYPE的值来寻找对应的Source-body。例如,如果Event header中DATATYPE为REST-JSON时,则查看是否有Source-rest-json这个类,如果有,则标记,并在后续中调用这个类;如果没有这个类,则使用默认的Source-body类。因为是针对数据类型查找数据类型,所以允许动态加载Source-body,即当原来没有的数据类型例如A被开发出来后,可以通过加载其Source-A来处理其数据传输,而不使用默认Source-body,来提高效率和灵活性。
如上述选择生成单元30,当选择了一个Source-body后,会对应生成一个队列,当新近的Event header与其对应的Source-body队列中的Event header的指定信息相同后,新的Event数据会添加到其队列中,比如,当处理时间戳信息不同,而其他信息均相同的时候,新的Event数据会添加到其队列中。
如上述选择建立单元40,建立新的数据通道,数据通道建立联系后,数据的传输等与原有Flume的工作原理相同。
参照图6和图4,本实施例中,上述基于大数据的Flume接收端数据处理装置,还包括:
拆分定义单元100,用于将Source拆分Source-header和Source-body,并在每个时间Event中定义Header信息。
如上述拆分定义单元100,将Source端进行了拆分重构。将Source拆分为两大部分,Source-header和Source-body,并在每个时间Event中定义Header信息;Event是一个事件,由一个重新定义的header及数据组成;Src-header为Source-header缩写,负责处理Event中重新定义的header信息;Source-body可以由多个组成,针对avro、thrift数据源的为Source-avro、Source-thrift,在图4中简写为Src-avro、Src-thrift,当数据源类型不指定时即流向默认的Source-body简写为Src-body。其他架构组件与原Flume一致,在此不做赘述。
参照图7,本实施例中,上述拆分定义单元100包括:
解析模块110,用于在Source-header中设置指定参数,通过所述指定参数在Source-header中进行解析。
如上述解析模块110,Event由数据源产生,由两部分组成,header和数据。其中在Source-headerr中定义一系列必填参数,用于Source-header中进行解析并进行后续操作。
本实施例中,上述指定参数包括:
指明Event数据所使用的数据传输所用类型的DATATYPE,其包括含但不限于下列几种传输类型,如TCompactProtocol、TBinaryProtocol、Protocol Buffers、REST-XML和REST-JSON等;
数据源的IP地址或域名的ONFIG_BIND,其中内部网络时建议使用IP地址,跨域调用时推荐使用域名;
数据源所使用的通讯端口的ONFIG_PORT,例如9999等;以及,
时间戳函数生成时间戳的TIMESTAMP,其中,为了使数据源所发送的数据可以根据Source的重要性并按照时间顺序进行传输,使用Lamport面包房算法(简称Lamport算法)来定义TIMESTAMP函数。
本实施例中,上述解析模块110包括:
生成子模块1101,用于所述TIMESTAMP还生成16位数位作为字典数位;其中所述字典位的生成规则为12位IP地址加4位线程PID,若PID小于4位时左边补零,大于四位时取后四位;当大于两个的具有相同系统时间戳的数据由不同线程传入Source header时,Source-header根据字典位中的线程数位进行排序,较小的数据会被先传入相应Source-body中。
如上述生成子模块1101,可以保证多线程的情况下,数据是以Source的重要性来进行传输的。
本实施例中,同一进程中,事件的表达方式一般为,事件E1和E2发生的时间分别为T1和T2,表达式T1<T2表示为“事件E1在事件E2之前发生”。那么对于在同一进程中,我们还定义如下规则:
1.若事件E1在事件E2之前发生,则TIMESTAMP(E1)<TIMESTAMP(E2);
2.若事件E1和E2分别代表发送一个消息和接收该消息,则TIMESTAMP(E1)<TIMESTAMP(E2);
3.对所有不同的事件E1≠E2,则TIMESTAMP(E1)≠TIMESTAMP(E2);
定义上述三条规则后,我们保证在同一线程内,数据的传输是以时间一致性进行传输的。
在一具体实施例中,首先,Source-header读取TIMESTAMP,对Event进行排序。排序中先以时间戳数位进行排序,本实施例中使用quicksort排序方法进行排序,在其它实施例中,也可以使用其其它的排序方法。当时间排序之后,如有时间戳相同数据,再以其中字典位按照IP先排序,线程PID后排序的方式进行再排序,防止数据源产生的Event有多种数据类型。其次,当排序完成后Source-header会通过switch()函数读取的DATATYPE的值来寻找对应的Source-body。例如,如果Event header中DATATYPE为REST-JSON时,则查看是否有Source-rest-json这个类,如果有,则标记,并在后续中调用这个类;如果没有这个类,则使用默认的Source-body类。因为是针对数据类型查找数据类型,所以允许动态加载Source-body,即当原来没有的数据类型例如A被开发出来后,可以通过加载其Source-A来处理其数据传输,而不使用默认Source-body,来提高效率。然后,当选择了一个Source-body后,会对应生成一个队列,当新近的Event header与其对应的Source-body队列中的Event header除时间戳外相同后,新的Event数据会添加到其队列中。最后,当对应的Source-body类被选中后,Source-body以其数据类型选择对应的channel,并与之建立联系,此处之后即与原有Flume的工作原理相同。
在另一具体实施例中,进行实验数据比较分析,如下:
1)测试方法:
a.设立一台服务器,底层收集服务器系统日志。
b.分别以Thrift、Avro、JSON等传输方式实现通信。
c.分别使用Flume和重构后的Flume与日志收集服务器集成。
d.每次测试时,只使用单一传输方式,并使用同一端口进行测试。
2)测试结果,如下表:
本发明的基于大数据的Flume接收端数据处理装置,因为是针对数据类型查找数据类型,所以允许动态加载Source-body,即当原来没有的数据类型被开发出来后,可以通过加载其对应的Source-body来处理其数据传输,而不使用默认Source-body,提高效率、灵活性和通用性。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种基于大数据的Flume接收端数据处理方法,其特征在于,包括:
获取Event,并根据Event header中的信息对Event进行排序;
通过指定的函数查找对应的Source-body;如果有对应的Source-body,则直接标记,如果没有,则使用默认的Source-body,并动态加载Source-body,形成一个新的Source-body;
选择对应的Source-body后,对应生成一个队列,当新近的Event header与其对应的Source-body队列中的指定信息相同后,新的Event数据会添加到其队列中;
当对应的Source-body类被选中后,Source-body以其数据类型选择对应的channel,并与之建立联系。
2.根据权利要求1所述的基于大数据的Flume接收端数据处理方法,其特征在于,所述获取Event,并根据Event header中的信息对Event进行排序的步骤之前,包括:
将Source拆分Source-header和Source-body,并在每个时间Event中定义Header信息。
3.根据权利要求2所述的基于大数据的Flume接收端数据处理方法,其特征在于,所述将Source拆分Source-header和Source-body,并在每个时间Event中定义Header信息的步骤,包括:
在Source-header中设置指定参数,通过所述指定参数在Source-header中进行解析。
4.根据权利要求3所述的基于大数据的Flume接收端数据处理方法,其特征在于,所述指定参数包括:
指明Event数据所使用的数据传输所用类型的DATATYPE;
数据源的IP地址或域名的ONFIG_BIND;
数据源所使用的通讯端口的ONFIG_PORT;以及,
时间戳函数生成时间戳的TIMESTAMP。
5.根据权利要求4所述的基于大数据的Flume接收端数据处理方法,其特征在于,在Source-header中设置指定参数,通过所述指定参数在Source-header中进行解析的步骤,包括:
所述TIMESTAMP还生成16位数位作为字典数位;其中所述字典位的生成规则为12位IP地址加4位线程PID,若PID小于4位时左边补零,大于四位时取后四位;当大于两个的具有相同系统时间戳的数据由不同线程传入Source header时,Source-header根据字典位中的线程数位进行排序,较小的数据会被先传入相应Source-body中。
6.一种基于大数据的Flume接收端数据处理装置,其特征在于,包括:
获取单元,用于获取Event,并根据Event header中的信息对Event进行排序;
查找判断单元,用于通过指定的函数查找对应的Source-body;如果有对应的Source-body,则直接标记,如果没有,则使用默认的Source-body,并动态加载Source-body,形成一个新的Source-body;
选择生成单元,用于选择对应的Source-body后,对应生成一个队列,当新近的Eventheader与其对应的Source-body队列中的指定信息相同后,新的Event数据会添加到其队列中;
选择建立单元,用于当对应的Source-body类被选中后,Source-body以其数据类型选择对应的channel,并与之建立联系。
7.根据权利要求6所述的基于大数据的Flume接收端数据处理装置,其特征在于,还包括:
拆分定义单元,用于将Source拆分Source-header和Source-body,并在每个时间Event中定义Header信息。
8.根据权利要求7所述的基于大数据的Flume接收端数据处理装置,其特征在于,所述拆分定义单元包括:
解析模块,用于在Source-header中设置指定参数,通过所述指定参数在Source-header中进行解析。
9.根据权利要求8所述的基于大数据的Flume接收端数据处理装置,其特征在于,所述指定参数包括:
指明Event数据所使用的数据传输所用类型的DATATYPE;
数据源的IP地址或域名的ONFIG_BIND;
数据源所使用的通讯端口的ONFIG_PORT;以及,
时间戳函数生成时间戳的TIMESTAMP。
10.根据权利要求9所述的基于大数据的Flume接收端数据处理装置,其特征在于,所述解析模块包括:
生成子模块,用于所述TIMESTAMP还生成16位数位作为字典数位;其中所述字典位的生成规则为12位IP地址加4位线程PID,若PID小于4位时左边补零,大于四位时取后四位;当大于两个的具有相同系统时间戳的数据由不同线程传入Source header时,Source-header根据字典位中的线程数位进行排序,较小的数据会被先传入相应Source-body中。
CN201610309692.7A 2016-05-10 2016-05-10 基于大数据的Flume接收端数据处理方法和装置 Active CN106648722B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610309692.7A CN106648722B (zh) 2016-05-10 2016-05-10 基于大数据的Flume接收端数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610309692.7A CN106648722B (zh) 2016-05-10 2016-05-10 基于大数据的Flume接收端数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN106648722A true CN106648722A (zh) 2017-05-10
CN106648722B CN106648722B (zh) 2020-01-10

Family

ID=58848683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610309692.7A Active CN106648722B (zh) 2016-05-10 2016-05-10 基于大数据的Flume接收端数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN106648722B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109525448A (zh) * 2019-01-10 2019-03-26 北京智信未来信息技术有限公司 日志数据采集系统及方法
CN110647407A (zh) * 2019-08-30 2020-01-03 北京浪潮数据技术有限公司 一种数据配置方法和系统
CN110673891A (zh) * 2019-09-12 2020-01-10 济南浪潮数据技术有限公司 一种数据处理方法、装置、设备及介质
CN111880930A (zh) * 2020-07-15 2020-11-03 杭州安恒信息技术股份有限公司 一种数据分流方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101689998A (zh) * 2007-06-12 2010-03-31 微软公司 活动说话者标识
CN101764811A (zh) * 2009-12-30 2010-06-30 北京飞天诚信科技有限公司 数据流的生成方法
US20140279841A1 (en) * 2013-03-13 2014-09-18 Wal-Mart Stores, Inc. System and method for streaming events in a transaction-based system
CN105005549A (zh) * 2015-07-31 2015-10-28 山东蚁巡网络科技有限公司 一种自定义链式日志解析装置及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101689998A (zh) * 2007-06-12 2010-03-31 微软公司 活动说话者标识
CN101764811A (zh) * 2009-12-30 2010-06-30 北京飞天诚信科技有限公司 数据流的生成方法
US20140279841A1 (en) * 2013-03-13 2014-09-18 Wal-Mart Stores, Inc. System and method for streaming events in a transaction-based system
CN105005549A (zh) * 2015-07-31 2015-10-28 山东蚁巡网络科技有限公司 一种自定义链式日志解析装置及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
徐海荣 等: ""基于Flume、Kafka、Storm、HDFS的航空维修大数据系统"", 《上海工程技术大学学报》 *
赵菲 等: ""面向大数据的Storm框架研究与应用"", 《微型机与应用》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109525448A (zh) * 2019-01-10 2019-03-26 北京智信未来信息技术有限公司 日志数据采集系统及方法
CN110647407A (zh) * 2019-08-30 2020-01-03 北京浪潮数据技术有限公司 一种数据配置方法和系统
CN110673891A (zh) * 2019-09-12 2020-01-10 济南浪潮数据技术有限公司 一种数据处理方法、装置、设备及介质
CN111880930A (zh) * 2020-07-15 2020-11-03 杭州安恒信息技术股份有限公司 一种数据分流方法及系统

Also Published As

Publication number Publication date
CN106648722B (zh) 2020-01-10

Similar Documents

Publication Publication Date Title
US10831562B2 (en) Method and system for operating a data center by reducing an amount of data to be processed
US11775501B2 (en) Trace and span sampling and analysis for instrumented software
CN111400186B (zh) 性能测试方法及系统
CN103942287B (zh) 海量数据处理方法、数据库服务器及应用服务器
CN111552838B (zh) 数据处理方法及装置、计算机设备、存储介质
US11188443B2 (en) Method, apparatus and system for processing log data
CN109684052B (zh) 事务分析方法、装置、设备及存储介质
CN112118174B (zh) 软件定义数据网关
CN106648722A (zh) 基于大数据的Flume接收端数据处理方法和装置
CN107634848A (zh) 一种采集分析网络设备信息的系统和方法
CN113360554B (zh) 一种数据抽取、转换和加载etl的方法和设备
CN108228322B (zh) 一种分布式链路跟踪、分析方法及服务器、全局调度器
CN109359250A (zh) 统一资源定位符处理方法、装置、服务器及可读存储介质
US8489631B2 (en) Distributing a query
CN112559285B (zh) 基于分布式服务架构的微服务监控方法及相关装置
CN110162512A (zh) 一种日志检索方法、装置及存储介质
US20150120697A1 (en) System and method for analysis of a database proxy
CN111159135A (zh) 数据处理方法、装置、电子设备及存储介质
CN110728118B (zh) 跨数据平台的数据处理方法、装置、设备及存储介质
CN106557483A (zh) 一种数据处理、数据查询方法及设备
CN112732663A (zh) 一种日志信息处理方法及装置
CN116578911A (zh) 数据处理方法、装置、电子设备及计算机存储介质
CN115664992A (zh) 网络运行数据的处理方法、装置、电子设备及介质
US20040111706A1 (en) Analysis of latencies in a multi-node system
CN110297748A (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
GR01 Patent grant
GR01 Patent grant