CN107609158A - 一种基于Flume的高可靠数据采集及存储方法 - Google Patents

一种基于Flume的高可靠数据采集及存储方法 Download PDF

Info

Publication number
CN107609158A
CN107609158A CN201710881173.2A CN201710881173A CN107609158A CN 107609158 A CN107609158 A CN 107609158A CN 201710881173 A CN201710881173 A CN 201710881173A CN 107609158 A CN107609158 A CN 107609158A
Authority
CN
China
Prior art keywords
data
hdfssink
hdfs
classes
flume
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.)
Pending
Application number
CN201710881173.2A
Other languages
English (en)
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.)
Beijing Institute of Computer Technology and Applications
Original Assignee
Beijing Institute of Computer Technology and Applications
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 Beijing Institute of Computer Technology and Applications filed Critical Beijing Institute of Computer Technology and Applications
Priority to CN201710881173.2A priority Critical patent/CN107609158A/zh
Publication of CN107609158A publication Critical patent/CN107609158A/zh
Pending legal-status Critical Current

Links

Abstract

本发明涉及一种基于Flume的高可靠数据采集及存储方法,涉及数据处理技术领域。本发明基于Flume和文件系统HDFS设计了一种改进的数据采集及存储方法,能够最大可能在大量数据高速存储的时候保证数据不丢失,同时减少数据写入文件系统造成的拥堵,提升数据写入的性能。

Description

一种基于Flume的高可靠数据采集及存储方法
技术领域
本发明涉及数据处理技术领域,具体涉及一种基于Flume的高可靠数据采集及存储方法。
背景技术
日志采集是大数据的基石。随着互联网行业的快速发展,网络规模的不断扩大,各种企事业单位的业务系统、网络安全等系统每天都会产生大量的日志数据。收集业务日志数据、网络安全日志数据,供离线和在线的分析系统使用,正是日志收集系统的要做的事情。高可用性,高可靠性和可扩展性是日志收集系统应具有的基本特征。
目前常用的开源日志收集系统有Flume,Scribe等。Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,目前已经是Apache的一个子项目。Flume支持在系统中定制各类数据发送方,用于收集数据;同时Flume可以对数据进行简单处理,并写到各种数据接收方。
目前最常用的采集存储是采用开源组件Flume+HDFS的组合形式,把数据写到HDFS文件系统,将对进行大数据的挖掘分析具有重大意义。
如图1所示,常规的Flume包括source层、channel层和sink层,由source层从数据源采集数据,并发送至channel层,channel层对数据进行简单的缓存,sink层从channel层中获取数据,并发送至接收方;数据源一般为需要采集数据的生产机器,接收方可以是相应的存储文件系统、数据库或者远程服务器,采集的数据一般为生产机器的日志或安全设备日志。
但是在Flume的实际使用过程中,会遇到如下问题:
1、使用固定大小的MemoryChannel(Flume内置的常用内存管道)在日志高峰时常报队列大小不够的异常;使用FileChannel(Flume内置的常用文件管道)又导致IO繁忙的问题。
2、Flume向文件系统Hdfs写日志,在高峰时间速度较慢;
3、因系统异常或网络阻塞或系统开关机会造成数据的丢失;
4、系统缺乏有效的监控手段,无法进行快速应急响应处置。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何最大可能在大量数据高速存储的时候保证数据不丢失,同时减少数据写入文件系统造成的拥堵,提升数据写入的性能。
(二)技术方案
为了解决上述技术问题,本发明提供了一种基于Flume的高可靠数据采集及存储方法,包括以下步骤:
步骤1:Flume的Source层接收数据源发送的原始数据;
步骤2:Source层把接收的无用原始数据发送给丢弃无用数据的类NullChannel做丢弃处理;Source层把接收的有用原始数据发送给新建类PerfectChannel,若Channel层未出现数据积压且系统未出现异常,则Source层把接收到的数据发送到内存管道MemoryChannel;若Channel层出现数据积压或系统出现异常,则Source层把接收到的数据发送到文件管道FileChanel;
步骤,3:新建HdfsSink类,HdfsSink类从MemoryChannel或FileChanel中读取数据写入文件系统Hdfs,并在HdfsSink类中加入开关装置,当HdfsSink的开关装置是打开状态时,则HdfsSink类不再往Hdfs中写入数据,并且HdfsSink类只从FileChanel中读取数据;当HdfsSink的开关装置未打开时,HdfsSink类将数据写入到Hdfs中。
优选地,步骤3中,当HdfsSink的开关装置未打开时,HdfsSink类将数据写入Hdfs之前,为HdfsSink增加自动创建索引的功能。
优选地,为HdfsSink增加自动创建索引功能的方法为:根据Hadoop提供对压缩格式lzo创建索引的功能,使得压缩文件是可切分的,从而使得Hadoop Job可并行处理数据文件。
优选地,在步骤1至步骤3的整个过程中,使用Zabbix monitor服务对数据发送数量,拥堵情况及写Hdfs速度进行监控,同时对写Hdfs状态及日志大小进行异常监控。
(三)有益效果
本发明基于Flume和文件系统HDFS设计了一种改进的数据采集及存储方法,能够最大可能在大量数据高速存储的时候保证数据不丢失,同时减少数据写入文件系统造成的拥堵,提升数据写入的性能。
附图说明
图1为常规的Flume采集模块内部连接图;
图2为本发明的高可靠数据采集及存储方法流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
如图2所示,本发明提供的一种基于Flume的高可靠数据采集及存储方法包括以下步骤:
步骤1:Flume的Source层接收数据源发送的原始数据;
步骤2:Source层把无用的原始数据发送给NullChannel(无用数据进行丢弃的类)做丢弃处理;本发明中未使用Flume自身的NullSink组件对无用数据进行丢弃处理,而是为了提升采集性能,通过新建NullChannel类,把原先需要先将接收数据存放到Channel(管道)层中,再将数据取出扔掉这一步骤移到了Channel层里面进行处理。
Source层把接收的有用原始数据发送给PerfectChannel(新建类),本发明中未直接使用MemoryChannel(内存管道),以及FileChanel(文件管道),而是结合二者优缺点,新建了PerfectChannel类,当系统正常,同时管道内日志量不大,Sink层可以处理过来数据时,自动切换使用高吞吐量的MemoryChannel;当系统出现异常,如:代理死机,存储组停止、缓慢、死机,当Flume的Sink层速度跟不上的时候,同时又需要Channel层能够缓存下应用端发过来的日志时,自动切换使用FileChanel(文件管道)。
步骤3:为了往Hdfs(文件系统)写入数据,新建HdfsSink类,用于从Channel层中读取数据写入Hdfs,本发明在HdfsSink类中加入了开关装置,当开关装置是打开状态,则HdfsSink不再往Hdfs上写数据,并且数据只写向FileChannel,以此防止在Hdfs正常停机维护过程中造成的数据丢失;当HdfsSink的开关装置未打开时,其数据将被写入到Hdfs中,在此过程中,经实际使用发现,在数据高峰时期,容易造成Hdfs写入缓慢,因此本发明在写入Hdfs之前,为HdfsSink增加自动创建索引的功能,为HdfsSink增加自动创建索引的功能的方式为:根据Hadoop提供对lzo(压缩格式的一种)创建索引,使得压缩文件是可切分的,这样Hadoop Job可以并行处理数据文件,从而在高峰时期,提高了HdfsSink往Hdfs写入数据的速度。
结合以上整个过程,对于一个高可靠的数据采集传输方法来说,监控是必不可少的部分,在整个过程中,使用了Zabbix monitor服务对数据发送数量,拥堵情况及写Hdfs速度进行了监控,同时对写Hdfs状态及日志大小进行异常监控。
可以看出,本发明基于Flume和文件系统HDFS设计了一种改进的数据采集及存储方法,能够最大可能在大量数据高速存储的时候保证数据不丢失,同时减少数据写入文件系统造成的拥堵,提升数据写入的性能。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (5)

1.一种基于Flume的高可靠数据采集及存储方法,其特征在于,包括以下步骤:
步骤1:Flume的Source层接收数据源发送的原始数据;
步骤2:Source层把接收的无用原始数据发送给丢弃无用数据的类NullChannel做丢弃处理;Source层把接收的有用原始数据发送给新建类PerfectChannel,若Channel层未出现数据积压且系统未出现异常,则Source层把接收到的数据发送到内存管道MemoryChannel;若Channel层出现数据积压或系统出现异常,则Source层把接收到的数据发送到文件管道FileChanel;
步骤3:新建HdfsSink类,HdfsSink类从MemoryChannel或FileChanel中读取数据写入文件系统Hdfs,并在HdfsSink类中加入开关装置,当HdfsSink的开关装置是打开状态时,则HdfsSink类不再往Hdfs中写入数据,并且HdfsSink类只从FileChanel中读取数据;当HdfsSink的开关装置未打开时,HdfsSink类将数据写入到Hdfs中。
2.如权利要求1所述的方法,其特征在于,步骤3中,当HdfsSink的开关装置未打开时,HdfsSink类将数据写入Hdfs之前,为HdfsSink增加自动创建索引的功能。
3.如权利要求2所述的方法,其特征在于,为HdfsSink增加自动创建索引功能的方法为:根据Hadoop提供对压缩格式lzo创建索引的功能,使得压缩文件是可切分的,从而使得Hadoop Job可并行处理数据文件。
4.如权利要求1所述的方法,其特征在于,在步骤1至步骤3的整个过程中,使用Zabbixmonitor服务对数据发送数量,拥堵情况及写Hdfs速度进行监控,同时对写Hdfs状态及日志大小进行异常监控。
5.如权利要求1至4中任一项所述的方法,其特征在于,所述系统异常的情况包括代理死机,存储组停止和存储组死机。
CN201710881173.2A 2017-09-26 2017-09-26 一种基于Flume的高可靠数据采集及存储方法 Pending CN107609158A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710881173.2A CN107609158A (zh) 2017-09-26 2017-09-26 一种基于Flume的高可靠数据采集及存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710881173.2A CN107609158A (zh) 2017-09-26 2017-09-26 一种基于Flume的高可靠数据采集及存储方法

Publications (1)

Publication Number Publication Date
CN107609158A true CN107609158A (zh) 2018-01-19

Family

ID=61058689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710881173.2A Pending CN107609158A (zh) 2017-09-26 2017-09-26 一种基于Flume的高可靠数据采集及存储方法

Country Status (1)

Country Link
CN (1) CN107609158A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399231A (zh) * 2018-02-13 2018-08-14 中体彩科技发展有限公司 一种数据采集方法及Flume数据采集客户端
CN110989935A (zh) * 2019-12-06 2020-04-10 中盈优创资讯科技有限公司 Flume系统的数据处理、传输方法及装置
CN111930304A (zh) * 2020-07-10 2020-11-13 苏州浪潮智能科技有限公司 一种数据采集速度控制方法、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104579777A (zh) * 2015-01-06 2015-04-29 浪潮软件股份有限公司 日志管理系统和实现方法
CN106709069A (zh) * 2017-01-25 2017-05-24 焦点科技股份有限公司 高可靠性的大数据日志采集与传输方法
CN106777046A (zh) * 2016-12-09 2017-05-31 武汉卓尔云市集团有限公司 一种基于nginx日志的数据分析方法
CN106874381A (zh) * 2017-01-09 2017-06-20 重庆邮电大学 一种基于Hadoop的无线电环境地图数据处理系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104579777A (zh) * 2015-01-06 2015-04-29 浪潮软件股份有限公司 日志管理系统和实现方法
CN106777046A (zh) * 2016-12-09 2017-05-31 武汉卓尔云市集团有限公司 一种基于nginx日志的数据分析方法
CN106874381A (zh) * 2017-01-09 2017-06-20 重庆邮电大学 一种基于Hadoop的无线电环境地图数据处理系统
CN106709069A (zh) * 2017-01-25 2017-05-24 焦点科技股份有限公司 高可靠性的大数据日志采集与传输方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DJU ALEX: "深入剖析美团基于Flume的网站日志收集系统", 《HTTPS://WWW.JB51.NET/YUNYING/446338.HTML》 *
韩丽颖: "基于Hadoop技术的轨道交通MSS系统数据存储应用研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399231A (zh) * 2018-02-13 2018-08-14 中体彩科技发展有限公司 一种数据采集方法及Flume数据采集客户端
CN110989935A (zh) * 2019-12-06 2020-04-10 中盈优创资讯科技有限公司 Flume系统的数据处理、传输方法及装置
CN111930304A (zh) * 2020-07-10 2020-11-13 苏州浪潮智能科技有限公司 一种数据采集速度控制方法、设备及存储介质
CN111930304B (zh) * 2020-07-10 2022-08-12 苏州浪潮智能科技有限公司 一种数据采集速度控制方法、设备及存储介质

Similar Documents

Publication Publication Date Title
CN105824744B (zh) 一种基于b2b平台的实时日志采集分析方法
WO2020233212A1 (zh) 一种日志记录的处理方法、服务器及存储介质
CN107341258B (zh) 一种日志数据采集方法及系统
WO2017071134A1 (zh) 分布式跟踪系统
CN111258979B (zh) 一种云防护日志系统及其工作方法
CN108197233A (zh) 一种数据管理方法、中间件及数据管理系统
CN106487596A (zh) 分布式服务跟踪实现方法
CN107609158A (zh) 一种基于Flume的高可靠数据采集及存储方法
CN103440244A (zh) 一种大数据存储优化方法
US20190227862A1 (en) Policy based dynamic data collection for problem analysis
CN103064731A (zh) 一种提高消息队列系统性能的装置及其方法
CN103617287A (zh) 一种分布式环境下的日志管理方法和装置
CN104850407A (zh) 一种桌面录屏系统及其录屏方法
CN111813573B (zh) 管理平台与机器人软件的通信方法及其相关设备
CN106330963A (zh) 一种跨网络多节点日志采集的方法
CN106991177B (zh) 一种分布式环境下实时日志的无损采集方法及其系统
CN106250287A (zh) 一种日志信息处理装置
CN107357804A (zh) 互联网金融海量日志的分析系统及方法
CN108334556A (zh) 一种分析互联网金融海量日志的方法及系统
CN102571845A (zh) 一种分布式存储系统的数据存储方法及装置
CN105159820A (zh) 一种系统日志数据传输方法及装置
CN110989935A (zh) Flume系统的数据处理、传输方法及装置
CN101976210A (zh) 基于消息中间件的井场数据远程传输方法
CN102938829A (zh) 一种实时音视频流的预录实现方法
CN108614820A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180119

WD01 Invention patent application deemed withdrawn after publication