一种基于Flume的数据处理方法和装置的制造方法

文档序号:9887763阅读:365来源:国知局
一种基于Flume的数据处理方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据处理领域,更为具体而言,涉及一种基于Flume的数据处理方法和
目.ο
【背景技术】
[0002]随着电子商务的快速发展,相关网站的规模以及数据正以指数级形式飞速增长,电子商务网站每天需要处理的日志信息多达几TB。如何实时准确的收集、传输、计算海量日志成为电子商务领域迫切需要解决的问题。
[0003]现有技术主要使用分布式日志收集处理方法,最具代表性的是Flume-NG技术。Flume可用于从不同数据源收集、聚合、传输海量日志到日志管理服务器。传统的分布式Flume日志采集传输系统通过日志发送端Flume Client来发送日志,然后通过协议连接Flume服务器,将日志文件发送到日志收集模块Flume Server,在Flume Server模块进行相应的数据处理。但是,现有的Flume收集系统是直接从不同的WEB应用服务器接收日志,极易导致Flume服务器之间负载失衡,造成部分服务器宕机。

【发明内容】

[0004]为解决上述技术问题,本发明提供了一种基于Flume的数据处理方法和装置。
[0005]根据本发明实施方式的第一方面,提供了一种基于Flume的数据处理方法,该方法可包括:从应用服务器收集日志数据;根据Flume服务器的运行参数将所述日志数据均衡地分发至所述Flume服务器,其中,所述运行参数包括以下的一种或多种:负载、性能和带宽。
[0006]在本发明的一些实施方式中,所述运行参数是通过所述Flume服务器定时报告进行更新。
[0007]在本发明的一些实施方式中,所述方法还包括:在将所述日志数据发送至Flume月艮务器之后,通过文件类型的队列Channel对所述日志数据进行缓存。
[0008]在本发明的一些实施方式中,所述日志数据包括访问日志数据和javascript标记日志数据。
[0009]在本发明的一些实施方式中,所述方法还包括:在将所述日志数据发送至Flume月艮务器之后,将所述日志数据中的访问日志数据和javascript标记日志数据分别解析。
[0010]在本发明的一些实施方式中,所述方法还包括:将所述日志数据解析后的原始数据与缓存于内存中的数据库表中的业务数据进行关联查询以形成用于指标统计的数据。
[0011]在本发明的一些实施方式中,所述数据库表是通过EHcache分布式缓存。
[0012]根据本发明实施方式的第二方面,提供了一种基于Flume的数据处理装置,该装置可包括:收集模块,设置于应用服务器,用于收集所述应用服务器的日志数据;均衡模块,用于根据Flume服务器的运行参数将所述日志数据均衡地分发至所述Flume服务器,其中,所述运行参数包括以下的一种或多种:负载、性能和带宽。
[0013]在本发明的一些实施方式中,所述均衡模块,还用于定时接收所述Flume服务器报告的运行参数,并对所述Flume服务器的运行参数进行更新。
[0014]在本发明的一些实施方式中,所述装置还包括:传输处理模块,设置于Flume服务器,用于通过文件类型的队列Channel对所述日志数据进行缓存。
[00?5]在本发明的一些实施方式中,所述日志数据包括访问日志数据和javascript标记日志数据。
[0016]在本发明的一些实施方式中,所述装置还包括:解析模块,用于将所述日志数据中的访问日志数据和javascript标记日志数据分别解析。
[0017]在本发明的一些实施方式中,所述装置还包括:查询模块,用于将所述日志数据解析后的原始数据与缓存于内存中的数据库表中的业务数据进行关联查询以形成用于指标统计的数据。
[0018]在本发明的一些实施方式中,所述数据库表是通过EHcache分布式缓存。
[0019]本发明提供的基于Flume的数据处理方法和装置,根据Flume服务器的运行参数进行负载均衡,显著改善了数据收集处理的可靠性;而且对于均是海量数据的日志数据和业务数据,通过缓存于内存的数据库表对日志数据的解析结果进行关联查询,大大提高了数据查询效率,改善了数据的吞吐量。
【附图说明】
[0020]图1是根据本发明一种实施方式的基于Flume的数据处理方法的流程示意图;
[0021]图2是根据本发明一种实施方式的基于Flume的数据处理装置的结构示意图;
[0022]图3是根据本发明一种实施方式的基于Flume的数据处理装置的结构示意图。
【具体实施方式】
[0023]以下结合附图和【具体实施方式】对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或处理方式可以按各种不同配置进行组合和设计。
[0024]参见图1,图1是根据本发明一种实施方式的基于Flume的数据处理方法的流程示意图,该方法可包括:
[0025]SlOl,从应用服务器收集日志数据;
[0026]S102,根据Flume服务器的运行参数将所述日志数据均衡地分发至所述Flume服务器,其中,所述运行参数包括以下的一种或多种:负载、性能和带宽。
[0027]在本发明的实施方式中,应用服务器可以是对外提供各种业务处理应用的服务器,并且可以通过服务器集群的形式实现。应用服务器在提供应用服务的过程中,产生各种日志数据,例如,可包括访问日志(例如,WEB访问日志等)和javascript标记日志数据等。
[0028]本发明的数据处理方法可包括:步骤SlOl,从应用服务器收集日志数据,例如,可以通过设置于各个应用服务器的发送模块进行收集,发送模块将应用服务器的日志数据实时地同步发送,而且在日志数据接收方出现异常时,将日志数据缓存到队列中,等待接收方恢复正常时继续发送,避免发送方一端日志数据的丢失。
[0029]在一些实施方式中,应用服务器可以是WEB服务器。WEB服务器可使用Apache记录接收的每一个HTTP请求日志,然后使用customlog配置来调用Linux系统的logger写日志,所写的日志可被收集模块监听到,监听到的日志数据可发送至相应的均衡模块进行分发。
[0030]接下来,执行步骤S102,根据Flume服务器的运行参数将日志数据均衡地分发至所述Flume服务器,其中,所述Flume服务器的运行参数包括以下的一种或多种:负载、性能(例如,CPU以及内存等)和带宽。本发明的Flume服务器可以是集群的形式,可包括多个服务器。Flume服务器的运行参数是通过各个Flume服务器定时报告其运行参数(例如,负载、性能和带宽等)进行更新,例如,可以采用类似心跳检测的形式进行报告。根据定时更新的Flume月艮务器的运行参数,可获知各个Flume服务器的动态负载状态及相关运行状态,基于Flume服务器的动态的综合状态均衡地将日志数据分发到Flume服务器。例如,可以将各台Flume的各运行参数根据预定的评估规则设定权值,对服务器I的负载设置权值λ? I* (ml-wl I ),性能设置权值λ12*?12,带宽设置权值λ13*?13,对服务器2的负载设置权值λ21*(πι2-?21),性能设置权值λ22*?22,带宽设置权值λ23*?23,对服务器3的负载设置权值λ31*(πι3-?31),性能设置权值λ32*?32,带宽设置权值λ33*?33,分别计算服务器I至3的综合评估值All*(ml-wlI )+A12*wl2+A13*wl3,记作Wl,λ21*(πι2ι21 )+A22*w22+A23*w23,记作W2 A31*(m3-w31) +λ32*?32+λ33*?33,记作W3,确定W1、W2和W3的大小,选择最大的作为分发的对象。其中,mi表示Flume服务器的最大负载,i为服务器的标号,由压力测试所得;wij表示Flume服务器的各项运行参数,由各Flume服务器定时向负载均衡器汇报;Aij表示Flume服务器的各项运行参数的权重,i为服务器的标号,j为运行参数的标号(例如,负载对应的标号为I,性能对应的标号为2,带宽对应的标号为3),例如,λ??为服务器I的负载权重,其根据Flume服务器硬件及网络配置而设定,且同一台Flume服务器的各运行参数权重之和等于I,例如,服务器I的负载权重λ??、性能权重λ12和带宽权重λ13之和为I。需要说明的是,进行均衡所选择的参数可以是上述的三者,也可以是其中的二者或一者,具体的均衡策略可以采用上面举例说明的加权方式,也可以采用其他的方式,本发明对具体的均衡策略不做具体限定。
[0031]相对于现有的Flume直接从不同的WEB服务器收集日志数据相比,本发明根据Flume服务器的运行参数对日志数据均衡分发,可最大限度地利用分布式日志收集服务器资源,提高系统的数据吞吐量。
[0032]本发明的Flume服务器可包括source (接收)模块、channel (队列)模块和sink (处理)模块。本发明的数据处理方法,在通过负载均衡将日志数据发送至Flume服务器之后,还可包括:通过文件file类型的channel(队列)对日志数据进行队列缓存,这种缓存方式可有效避免使用内存类型队列而出现的服务器重启后数据丢失的情况,改善数据处理的可靠性。
[0033]由上述可知,从应用服务器集群中收集的日志数据可包括访问日志数据和javascript标记日志数据等。本发明的日志数据在发送至Flume服务器之后,在Flume服务器的接收模块对日志数据中的访问日志数据和javascript标记日志数据分别解析,得到原始数据。本发明针对不同类别的日志数据分别解析,可显著改善日志数据解析的效率。
[0034]由于WEB应用服务器上日志数据的不完整性,还需要对解析得到的原始数据进行关联查询,从而得到可用于指标统计的一条完整数据。而且,原始数据关联查询的查询效率是影响Flume服务器收集日志数据吞吐量的关键因素之一,而现有的Flume服务器并未对查询设置优化措施。
[0035]本发明的数据处理方法还可包括:在将日志数据进行分类解析之后,将日志数据解析得到的原始数据与缓存于内存中的数据库表的业务数据进行关联查询,从而形成用于指标统计的数据。其中,缓存的数据库表可以通过EHcache分布式缓存进行缓存,并且还可以结合LRU(Least Recently Used,近期最少使用)算法,将数据库表中的数据以〈key,value〉的形式缓存于内存中,多方面提高数
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1