浅析Flume大数据日志采集系统

2020-03-10 11:19付宇
科学与财富 2020年33期
关键词:大数据

付宇

摘 要:随着大数据、社交网络、云计算等技术不断融入我们的生活以及现有的计算能力、存储空间、网络带宽的高速发展,人类积累的数据在互联网、通信、金融、商业、医疗等诸多领域不断地增长和累积。在大数裾学习、开发过程中,会产生各种各样的数据源信息,如网站流量日志分析系统产生的日志数据,这些数据的收集、监听、使用非常重要。针对类似业务需求,通常会使用 Apache旗下的Flume日志采集系统完成相关数据采集工作。本文主要对Flume大数据日志采集系统进行介绍。

关键词:大数据;Flume;日志采集

近几年来,随着计算机和信息技术的迅猛发展和普及应用,行业应用系统的规模迅速扩大,行业应用所产生的数据呈爆炸性增长。动辄达到数百TB甚至数十至数百PB规模的行业/企业大数据已远远超出了现有传统的计算技术和信息系统的处理能力。如何对产生的大数据进行采集是大数据处理面临的问题之一。Apache Flume是一个高可靠、高可用的分布式系统,用于高效地从许多不同的数据源收集、聚合大批量的日志数据,进行集中式存储。Flume最早是Cloudera公司提供的一个高可用的、高可靠的、分布式海量日志采集、聚合和传输系统,之后纳入到了 Apache旗下,作为一个顶级开源项目。Apache Flume不仅只限于日志数据的采集,由于Flume采集的数据源是可定制的,因此Flume还可用于传输大量事件数据,包括但不限于网络流量数据、社交媒体生成的数据、电子邮件消息以及几乎任何可能的数据源。本文接下来主要对Flume的架构和相关组件进行介绍。

1  Flume的运行机制和系统结构

1.1Flume运行机制

Flume中有3个核心组件,它们分别是数据采集器(Source)、缓冲通道(Channel)以及接收器(Sink)。Flume的核心运行机制就是把数据从数据源,例如Web Server,通过数据采集器(Source)收集过来,再将收集的数据通过缓冲通道(Channel)汇集到指定的接收器(Sink)。Flume的基本架构中有一个Agent,它是Flume的核心角色,Flume Agent是一个JVM进程,它承载着将数据从外部数据源流向下一个目标的3个核心组件Source、Channel和Sink。

数据采集器Source用于源数据的采集,(例如从一个Web服务器采集源数据),然后将采集到的数据写入到Channel中并流向Sink。

缓冲通道Channel是一个缓冲队列,它用来对Source中的数据进行缓存,并将数据髙效、准确地寫人Sink,当数据全部写入Sink后,Flume就会删除该缓存通道中的数据。

接收器Sink接收并汇集流向Sink的所有数据。根据需求,可以直接对数据进行集中式存储(例如采用HDFS进行存储),也可以继续作为数据源传入其他远程服务器或者Source中。

在整个数据传输的过程中,Flume会将流动的数据封装到一个event中,event是Flume内部数据传输的基本单元。一个完整的event包含headers和body,其中headers包含了一些标识信息,而body中就是Flume收集到的数据信息。

1.2Flume系统结构

在实际开发中,Flume需要采集数据的类型多种多样,同时还会进行不同的中间操作,所以根据具体需求,可以将Flume日志采集系统分为简单结构和复杂结构。

当我们需要采集的数据源比较单一、简单的时候,可以直接使用一个Agent来进行数据采集并最终存储,这就是简单结构。

接下来介绍复杂结构,有时候Flume需要采集的数据源分布在不同的服务器上,使用一个Agent进行数据采集就不再适用,这时,就可以根据业务需求部署多个Agent进行数据采集,在开发中还有可能遇到Flume从同一个服务端采集数据,然后通过多路复用流分别传输并存储到不同目的地的情况,这就是复杂结构。

2 Flume核心组件

2.1 Flume Sources

在Flume日志采集系统中,采集方案是开发者需要编写的核心部分,而在采集方案中需要根据不同需求来分别针对Source、Channel和Sink进行配置。

在编写Flume采集方案时,首先必须明确的是采集的数据源的类型以及出处,接着,根据这些信息与Flume已提供支持的Flume Sources类型进行匹配,选择对应的数据采集器类型,也就是type属性;然后,再根据选择的数据采集器类型,配置必要和非必要的数据采集器属性,完成Flume Sources的配置。比较常见的Sources类型有Avro Source,它可以创建分层集合拓扑,利用Avro Source可以实现多级流动、扇出流、扇入流等效果。

2.2 Flume Channels

Channels通道是event在Agent上暂存的存储库,Source向Channel中添加event,Sink在读取完数据后再删除它。在配置Channels时,需要明确的是将要传输的sources数据源类型;接着,根据这些信息并结合开发中的实际需求,选择Flume已提供支持的Flume Channels;然后,再根据选择的Channel类型,配置必要和非必要的Channel属性。比较常见的Channels类型有Memory Channel和File Channel。Memory Channel会将event存储在具有可配置最大尺寸的内存队列中,它非常适用于需要更高吞吐量的流量。File Channel是Flume的持久通道,它将所有event写人磁盘,因此不会丢失进程或机器关机、崩溃时的数据。

2.3 Flume Sinks

Flume Sources采集到的数据通过Channels就会流向Sink中,此时的Sink类似一个采集到的数据集结的递进中心,它需要根据后续需求进行配置,从而最终选择是将数据直接进行集中式存储,如直接存储到HDFS中,还是继续作为其他Agent的Source继续传输。

在配置Sinks时,需要明确的就是将要传输的数据目的地、结果类型;接着,根据实际需求,选择Flume已提供支持的Flume Sinks类型;然后,再根据选择的Sinks类型,配置必要和非必要的Sinks属性。

3结论

在当前大数据、社交网络、云计算等技术中,如何对产生的大数据进行采集是大数据处理面临的问题之一。Apache Flume是一个高可靠、高可用的分布式系统,用于高效地从许多不同的数据源收集、聚合大批量的日志数据,进行集中式存储。通过理解Flume的工作原理和机制,对Flume的核心组件进行配置就可以快速搭建高效可靠的大数据日志采集系统。

参考文献:

[1] 孟小峰,慈祥.大数据管理:概念、技术与挑战.计算机研究与发展,2013,1.

[2] 张彦超,刘云,张海峰,程辉,熊菲.基于在线社交网络的信息传播模型.物理学报,2011,5.

[3] 陈康,郑纬民.云计算:系统实例与研究现状.软件学报,2009,05.

[4] 赵志伟.大数据平台实时计算监控方案分析.自动化与仪表,2020,04.

(武汉软件工程职业学院  湖北 武汉   430205)

猜你喜欢
大数据
基于在线教育的大数据研究
“互联网+”农产品物流业的大数据策略研究
大数据时代新闻的新变化探究
浅谈大数据在出版业的应用
“互联网+”对传统图书出版的影响和推动作用
大数据环境下基于移动客户端的传统媒体转型思路
基于大数据背景下的智慧城市建设研究
数据+舆情:南方报业创新转型提高服务能力的探索