CN106227877A - 一种基于hadoop 的分布式日志采集系统及方法 - Google Patents
一种基于hadoop 的分布式日志采集系统及方法 Download PDFInfo
- Publication number
- CN106227877A CN106227877A CN201610626771.0A CN201610626771A CN106227877A CN 106227877 A CN106227877 A CN 106227877A CN 201610626771 A CN201610626771 A CN 201610626771A CN 106227877 A CN106227877 A CN 106227877A
- Authority
- CN
- China
- Prior art keywords
- daily record
- server
- kafka
- producer
- local
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开一种基于hadoop的分布式日志采集系统,包括:local server,接收本地应用程序发来的日志,并将其分别转发给central server和archiver,如果central server发生故障,local server将接收的日志缓存到本地,central server恢复后,local server将缓存的日志重新加载并发送给central server;central server,接收来自local server的日志,并将日志转发给producer;archiver,接收各个local server的日志并备份到本地;producer,为kafka的producer接口服务,接收到日志之后推送到kafka队列,同时将日志落地到本地;kafka servers为kafka服务集群;consumer从kafka队列读取到日志后写入hdfs;hdfs,其配置来存储海量日志,每种日志文件每小时产生一个。还有方法。
Description
技术领域
本发明属于互联网海量日志收集的技术领域,具体地涉及一种基于hadoop的分布式日志采集系统及方法。
背景技术
facebook开源的日志收集系统Scribe,是一个基于thrift服务的实现的远程调用系统。收集应用程序的日志,发送到中央存储器(比如hadoop分布式文件系统hdfs),供后台离线统计分析。能够基本实现日志的分布式收集,可扩展性较强,容错性能较高。
但是,也存在着如下缺陷:
1Scribe能够实现一般日志的分布式收集,对海量日志虽然Scribe能够在hadoop分布式文件系统hdfs故障的情况下存储到本地,但是当hdfs恢复后,如果日志流量持续的近似达到Scribe承载的极限流量的情况下,原来堆积的日志不能及时的被发送到hdfs,而只能等到日志流量降到低于Scribe承载的极限流量的时候才能发送,对实时性有一定要求的日志将会导致不可忍受。Scribe无法提供离线日志的及时恢复。
2Scribe对实时流计算的应用支持的不够好,由于没有对外提供共享队列,不方便流式计算应用的扩展。
3Scribe的队列扩展性不够好,对日志落地的速度和接收日志的速度匹配能力不够,最终导致了日志的丢失。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种基于hadoop的分布式日志采集系统,其在日志不能及时到达时能够提供日志的备份、自动检测和准实时恢复,能够改善对流式计算应用的支持,方便流式应用的扩展,解决了Scribe写入hdfs时日志丢失的问题。
本发明的技术解决方案是:这种基于hadoop的分布式日志采集系统,该系统包括:
本地服务器local server,其配置来接收本地应用程序发来的日志,并将其分别转发给central server和archiver,如果central server发生故障,local server将接收的日志缓存到本地,central server恢复后,local server将缓存的日志重新加载并发送给centralserver;
中心服务器central server,其配置来接收来自local server的日志,并将日志转发给producer;
档案库存储器archiver,其配置来接收各个local server的日志并备份到本地;
发布者producer,其配置为kafka的producer接口服务,接收到日志之后推送到kafka队列,同时将日志落地到本地;
Kafka服务器kafka servers:其配置为kafka服务集群;
订阅者consumer,其配置为kafka的consumer接口服务,从kafka队列读取到日志后写入hdfs;
hadoop分布式文件系统hdfs,其配置来存储海量日志,每种日志文件每小时产生一个。
本发明通过本地服务器local server、中心服务器central server、档案库存储器archiver、发布者producer、Kafka服务器kafka servers、订阅者consumer、hadoop分布式文件系统hdfs构建,因此在日志不能及时到达时能够提供日志的备份、自动检测和准实时恢复,能够改善对流式计算应用的支持,方便流式应用的扩展,解决了Scribe写入hdfs时日志丢失的问题。
还提供了一种基于hadoop的分布式日志采集方法,该方法包括以下步骤:
(1)本地服务器local server接收本地应用程序发来的日志,并将其分别转发给central server和archiver,如果central server发生故障,local server将接收的日志缓存到本地,central server恢复后,local server将缓存的日志重新加载并发送给central server;
(2)中心服务器central server接收来自local server的日志,并将日志转发给producer;
(3)档案库存储器archiver接收各个local server的日志并备份到本地;
(4)发布者producer接收到日志之后推送到kafka队列,同时将日志落地到本地;
(5)Kafka服务器kafka servers配置为kafka服务集群;
(6)订阅者consumer从kafka队列读取到日志后写入hdfs;
(7)hadoop分布式文件系统hdfs存储海量日志,每种日志文件每小时产生一个。
附图说明
图1示出了根据本发明的基于hadoop的分布式日志采集系统的结构示意图。
具体实施方式
如图1所示,这种基于hadoop的分布式日志采集系统,该系统包括:本地服务器local server,其配置来接收本地应用程序发来的日志,并将其分别转发给centralserver和archiver,如果central server发生故障,local server将接收的日志缓存到本地,central server恢复后,local server将缓存的日志重新加载并发送给centralserver;
中心服务器central server,其配置来接收来自local server的日志,并将日志转发给producer;
档案库存储器archiver,其配置来接收各个local server的日志并备份到本地;
发布者producer,其配置为kafka的producer接口服务,接收到日志之后推送到kafka队列,同时将日志落地到本地;
Kafka服务器kafka servers:其配置为kafka服务集群;
订阅者consumer,其配置为kafka的consumer接口服务,从kafka队列读取到日志后写入hdfs;
hadoop分布式文件系统hdfs,其配置来存储海量日志,每种日志文件每小时产生一个。
本发明通过本地服务器local server、中心服务器central server、档案库存储器archiver、发布者producer、Kafka服务器kafka servers、订阅者consumer、hadoop分布式文件系统hdfs构建,因此在日志不能及时到达时能够提供日志的备份、自动检测和准实时恢复,能够改善对流式计算应用的支持,方便流式应用的扩展,解决了Scribe写入hdfs时日志丢失的问题。
另外,该系统还包括:
监控模块monitor:其配置来在每小时的特定时刻对每一种日志在该小时之前每小时内存放于archive server、producer、hdfs上生成的三个文件的大小做比较;以hdfs的文件为基准,计算archive server和producer上对应该小时的超出自身的比例大小;预估出问题的日志,然后根据需求恢复。
另外,如果archiver发生故障,local server将接收的日志缓存到本地,archiver恢复后,local server将缓存的日志重新加载并发送给archiver。
另外,如果producer发生故障,central server将接收的日志缓存到本地,producer恢复后,central server将缓存的日志重新加载并发送给producer。
另外,如果kafka servers发生故障,producer将接收的日志缓存到本地,kafkaservers恢复后,producer将缓存的日志重新加载并发送给kafka servers。
另外,采用spring实现注入,采用thrift同步接口实现模块之间的远程调用,采用log4j实现写日志,日志的合并在consumer进行。。
还提供了一种基于hadoop的分布式日志采集方法,该方法包括以下步骤:
(1)本地服务器local server接收本地应用程序发来的日志,并将其分别转发给central server和archiver,如果central server发生故障,local server将接收的日志缓存到本地,central server恢复后,local server将缓存的日志重新加载并发送给central server;
(2)中心服务器central server接收来自local server的日志,并将日志转发给producer;
(3)档案库存储器archiver接收各个local server的日志并备份到本地;
(4)发布者producer接收到日志之后推送到kafka队列,同时将日志落地到本地;
(5)Kafka服务器kafka servers配置为kafka服务集群;
(6)订阅者consumer从kafka队列读取到日志后写入hdfs;
(7)hadoop分布式文件系统hdfs存储海量日志,每种日志文件每小时产生一个。
另外,该方法还包括步骤(8),监控模块monitor在每小时的特定时刻对每一种日志在该小时之前每小时内存放于archive server、producer、hdfs上生成的三个文件的大小做比较;以hdfs的文件为基准,计算archive server和producer上对应该小时的超出自身的比例大小;预估出问题的日志,然后根据需求恢复。
本发明的一个具体实施例如下:
1、基础框架(Framework)
spring、log4j、thrift0.8、scribe
2、各模块结构(Modules)
●local server:开源的scribe的服务作为local server端使用,负责接受本地应用的日志,并将其转发出去,远程服务器故障时能缓存日志到本地,故障恢复后能再次发送。
●central server:开源的scribe的服务作为contral server端使用,接收到日之后再转发到producer,功能和local server端相似。
●archiver:开源的scribe的服务作为contral server端使用,接收到日志落地到本地。
●producer:kafka的producer接口服务,接收到日之后推送到kafka队列,同时会将日志落地到本地。
●kafka servers:kafka服务集群
●consumer:kafka的consumer接口服务,从kafka队列读取到日志后写入hdfs。
●hdfs:hadoop的hdfs系统
●monitor:定时的日志自动校验、恢复模块,通过比较archiver、prodycer、hdfs上的同一类型同一时刻对应的日志文件的大小,决定是否启动日志的离线恢复。
3、约定和规范
●采用spring实现注入功能
●采用thrift同步接口实现模块之间的远程调用
●采用log4j实现写日志功能
●Log:local server发送日志到central server、central server发送日志到producer,
●Info:producer发送日志到kafka集群,consumer写日志到hdfs
●日志category和topic在producer端基本不做改动
●日志的合并在consumer端进行
4、格式化参数(Params)
●输入(in):
√List<LogEntry>:scribe发送日志的格式
√KafkaStream<byte[],byte[]>:consumer从kafka获取的订阅数据格式
●输出(out):
√String:producer输出到kafka的日志格式、consumer写到hdfs的日志格式
5、编码实现(Programs)
●Coding:按照约定的格式和协议实现producer和consumer
6、构建部署(Build)
●Ubuntu12.04.4
●Thrift0.8
●Scribe2.0
●Kafka-0.8
●Zookeeper3.4.3
●Hadoop0.20.2
以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。
Claims (8)
1.一种基于hadoop的分布式日志采集系统,其特征在于:该系统包括:本地服务器local server,其配置来接收本地应用程序发来的日志,并将其分别转发给centralserver和archiver,如果central server发生故障,local server将接收的日志缓存到本地,central server恢复后,local server将缓存的日志重新加载并发送给centralserver;
中心服务器central server,其配置来接收来自local server的日志,并将日志转发给producer;
档案库存储器archiver,其配置来接收各个local server的日志并备份到本地;
发布者producer,其配置为kafka的producer接口服务,接收到日志之后推送到kafka队列,同时将日志落地到本地;
Kafka服务器kafka servers:其配置为kafka服务集群;
订阅者consumer,其配置为kafka的consumer接口服务,从kafka队列读取到日志后写入hdfs;
hadoop分布式文件系统hdfs,其配置来存储海量日志,每种日志文件每小时产生一个。
2.根据权利要求1所述的基于hadoop的分布式日志采集系统,其特征在于:该系统还包括:
监控模块monitor:其配置来在每小时的特定时刻对每一种日志在该小时之前每小时内存放于archive server、producer、hdfs上生成的三个文件的大小做比较;以hdfs的文件为基准,计算archive server和producer上对应该小时的超出自身的比例大小;预估出问题的日志,然后根据需求恢复。
3.根据权利要求2所述的基于hadoop的分布式日志采集系统,其特征在于:如果archiver发生故障,local server将接收的日志缓存到本地,archiver恢复后,localserver将缓存的日志重新加载并发送给archiver。
4.根据权利要求3所述的基于hadoop的分布式日志采集系统,其特征在于:如果producer发生故障,central server将接收的日志缓存到本地,producer恢复后,centralserver将缓存的日志重新加载并发送给producer。
5.根据权利要求4所述的基于hadoop的分布式日志采集系统,其特征在于:如果kafkaservers发生故障,producer将接收的日志缓存到本地,kafka servers恢复后,producer将缓存的日志重新加载并发送给kafka servers。
6.根据权利要求5所述的基于hadoop的分布式日志采集系统,其特征在于:采用spring实现注入,采用thrift同步接口实现模块之间的远程调用,采用log4j实现写日志,日志的合并在consumer进行。
7.一种基于hadoop的分布式日志采集方法,其特征在于:该方法包括以下步骤:
(1)本地服务器local server接收本地应用程序发来的日志,并将其分别转发给central server和archiver,如果central server发生故障,local server将接收的日志缓存到本地,central server恢复后,local server将缓存的日志重新加载并发送给central server;
(2)中心服务器central server接收来自local server的日志,并将日志转发给producer;
(3)档案库存储器archiver接收各个local server的日志并备份到本地;
(4)发布者producer接收到日志之后推送到kafka队列,同时将日志落地到本地;
(5)Kafka服务器kafka servers配置为kafka服务集群;
(6)订阅者consumer从kafka队列读取到日志后写入hdfs;
(7)hadoop分布式文件系统hdfs存储海量日志,每种日志文件每小时产生一个。
8.根据权利要求7所述的基于hadoop的分布式日志采集方法,其特征在于:该方法还包括步骤(8),监控模块monitor在每小时的特定时刻对每一种日志在该小时之前每小时内存放于archive server、producer、hdfs上生成的三个文件的大小做比较;以hdfs的文件为基准,计算archive server和producer上对应该小时的超出自身的比例大小;预估出问题的日志,然后根据需求恢复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610626771.0A CN106227877A (zh) | 2016-08-02 | 2016-08-02 | 一种基于hadoop 的分布式日志采集系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610626771.0A CN106227877A (zh) | 2016-08-02 | 2016-08-02 | 一种基于hadoop 的分布式日志采集系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106227877A true CN106227877A (zh) | 2016-12-14 |
Family
ID=57535159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610626771.0A Pending CN106227877A (zh) | 2016-08-02 | 2016-08-02 | 一种基于hadoop 的分布式日志采集系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106227877A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108710646A (zh) * | 2018-04-25 | 2018-10-26 | 福建天泉教育科技有限公司 | 一种数据同步的方法及装置 |
CN108964957A (zh) * | 2017-05-24 | 2018-12-07 | 中兴通讯股份有限公司 | 一种数据通信业务质量监控的方法及大数据系统 |
CN109327351A (zh) * | 2018-09-12 | 2019-02-12 | 拉扎斯网络科技(上海)有限公司 | 日志数据的实时采集方法、装置、电子设备及存储介质 |
CN111061610A (zh) * | 2019-12-09 | 2020-04-24 | 广州鼎甲计算机科技有限公司 | 集群系统性能测试报告的生成方法、装置和计算机设备 |
CN111639098A (zh) * | 2020-05-11 | 2020-09-08 | 紫光云技术有限公司 | 一种云日志管理方法 |
CN112100133A (zh) * | 2020-11-04 | 2020-12-18 | 广州市玄武无线科技股份有限公司 | 一种分布式的日志处理系统 |
CN113114483A (zh) * | 2021-03-17 | 2021-07-13 | 上海浦东发展银行股份有限公司 | 一种业务日志全链路跟踪方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101964795A (zh) * | 2010-09-30 | 2011-02-02 | 北京世纪互联工程技术服务有限公司 | 日志采集系统、日志采集方法和日志回收服务器 |
CN103036961A (zh) * | 2012-12-07 | 2013-04-10 | 蓝盾信息安全技术股份有限公司 | 一种日志分布式收集及存储方法 |
CN104036025A (zh) * | 2014-06-27 | 2014-09-10 | 蓝盾信息安全技术有限公司 | 一种基于分布式的海量日志采集系统 |
CN104182506A (zh) * | 2014-08-19 | 2014-12-03 | 浪潮(北京)电子信息产业有限公司 | 日志管理方法 |
CN104486107A (zh) * | 2014-12-05 | 2015-04-01 | 曙光信息产业(北京)有限公司 | 一种日志采集装置及方法 |
CN105589791A (zh) * | 2015-12-28 | 2016-05-18 | 江苏省电力公司信息通信分公司 | 一种云计算环境下应用系统日志监控管理的方法 |
-
2016
- 2016-08-02 CN CN201610626771.0A patent/CN106227877A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101964795A (zh) * | 2010-09-30 | 2011-02-02 | 北京世纪互联工程技术服务有限公司 | 日志采集系统、日志采集方法和日志回收服务器 |
CN103036961A (zh) * | 2012-12-07 | 2013-04-10 | 蓝盾信息安全技术股份有限公司 | 一种日志分布式收集及存储方法 |
CN104036025A (zh) * | 2014-06-27 | 2014-09-10 | 蓝盾信息安全技术有限公司 | 一种基于分布式的海量日志采集系统 |
CN104182506A (zh) * | 2014-08-19 | 2014-12-03 | 浪潮(北京)电子信息产业有限公司 | 日志管理方法 |
CN104486107A (zh) * | 2014-12-05 | 2015-04-01 | 曙光信息产业(北京)有限公司 | 一种日志采集装置及方法 |
CN105589791A (zh) * | 2015-12-28 | 2016-05-18 | 江苏省电力公司信息通信分公司 | 一种云计算环境下应用系统日志监控管理的方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108964957A (zh) * | 2017-05-24 | 2018-12-07 | 中兴通讯股份有限公司 | 一种数据通信业务质量监控的方法及大数据系统 |
CN108964957B (zh) * | 2017-05-24 | 2022-08-02 | 中兴通讯股份有限公司 | 一种数据通信业务质量监控的方法及大数据系统 |
CN108710646A (zh) * | 2018-04-25 | 2018-10-26 | 福建天泉教育科技有限公司 | 一种数据同步的方法及装置 |
CN109327351A (zh) * | 2018-09-12 | 2019-02-12 | 拉扎斯网络科技(上海)有限公司 | 日志数据的实时采集方法、装置、电子设备及存储介质 |
CN111061610A (zh) * | 2019-12-09 | 2020-04-24 | 广州鼎甲计算机科技有限公司 | 集群系统性能测试报告的生成方法、装置和计算机设备 |
CN111639098A (zh) * | 2020-05-11 | 2020-09-08 | 紫光云技术有限公司 | 一种云日志管理方法 |
CN112100133A (zh) * | 2020-11-04 | 2020-12-18 | 广州市玄武无线科技股份有限公司 | 一种分布式的日志处理系统 |
CN113114483A (zh) * | 2021-03-17 | 2021-07-13 | 上海浦东发展银行股份有限公司 | 一种业务日志全链路跟踪方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106227877A (zh) | 一种基于hadoop 的分布式日志采集系统及方法 | |
CN109597723B (zh) | 用于地铁综合监控系统的双机热备冗余实现系统及方法 | |
CN103064731A (zh) | 一种提高消息队列系统性能的装置及其方法 | |
CN104090891B (zh) | 数据处理方法、装置及系统 | |
CN101534415B (zh) | 一种文件实时传输的方法和系统 | |
CN105959151A (zh) | 一种高可用的流式处理系统及方法 | |
CN106250270A (zh) | 一种云计算平台下的数据备份方法 | |
CN102176726A (zh) | 一种电能表信息采集系统中的地址自适应方法 | |
CN103763368B (zh) | 一种跨数据中心的数据同步方法 | |
CN102480489A (zh) | 一种用于分布式环境下的日志记录方法和设备 | |
CN104866528B (zh) | 多平台数据采集方法及系统 | |
CN102412990B (zh) | 具有集中管理和实时传输功能遥感卫星原始数据记录系统 | |
CN104185018A (zh) | 用于视频监控系统测试的网络摄像机模拟装置及测试方法 | |
CN102289469A (zh) | 一种支持通用数据库基于物理隔离设备同步数据的方法 | |
CN103678522B (zh) | 一种智能变电站计量系统数据采集和转换方法 | |
CN103837197B (zh) | 一种不间断的温湿度监测系统及方法 | |
CN102820994A (zh) | 一种用于网络隔离环境下的数据交换装置及方法 | |
CN103294802A (zh) | 千万千瓦级风电基地风机运行信息实时监测方法 | |
CN102591749B (zh) | 一种连续数据存储方法 | |
CN106412513A (zh) | 视频处理系统及处理方法 | |
CN105095502A (zh) | 一种集群存储系统的日志收集方法 | |
CN103092465A (zh) | 一种情感化记事背景的生成方法 | |
CN111092931B (zh) | 电力系统在线超实时仿真的流式数据快速分发方法及系统 | |
CN201766620U (zh) | 一种地铁调度台辅助服务器 | |
CN102685155B (zh) | 内容传送的方法、内容传送服务器及内容传送代理服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161214 |