Flume
发布人:张子卓  发布时间:2019-12-12   浏览次数:588

官方网站链接:http://flume.apache.org/
简介

 Flume是一个分布式、高可靠、高可用的日志收集系统,它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化的数据存储系统中。

 Flume架构整体上看就是 SourceChannelSink 的三层架构,类似生产者和消费者的架构,他们之间通过队列(Channel)传输、解耦。

应用场景

 Flume被设计用来传输、提取定期生成的数据的,数据源是可定制的,几乎任何数据源都有可能,数据文件可以是日志、文本或图片文件等,例如,海量日志、网络的业务数据、社交媒体产生的数据、电子邮件等数据的采集、聚合和传输。Flume中传输的数据是不断生成、流式的。

功能特性
  1. 高可靠性

 Flume的核心是把数据从数据源收集过来,再送到目的地。为了保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,删除自己缓存的数据。当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume提供了三种级别的可靠性保障,所有的数据以event为单位传输,从强到弱依次分别为:End-to-end(收到数据先将event写到磁盘上,当数据传送成功后,再删除;如果数据发送失败,可以重新发送),Store on failure(当数据接收方crash时,将数据写到本地,待恢复后,继续发送),Best effort(数据发送到接收方后,不会进行确认)。

  1. 可恢复性

 Flume依靠Channel实现数据可恢复性。如使用FileChannel,事件持久化在本地文件系统里。

  1. 功能可扩展性

 Flume支持可扩展架构,用户可以根据需要添加个性化的SourceChannel或者Sink。此外,Flume自带了很多组件,包括各种SourceAvroSpooling Directory等)、SinkHBaseHDFSKafka等)。

  1. 可管理性

 Flume的所有AgentColletorMaster统一管理,这使得系统便于维护。在多Master情况下,会保证动态配置数据的一致性。用户可以在Master上查看各个数据源或者数据流执行情况,且可以对各个数据源配置和动态加载。Flume提供了WebShell客户端两种形式对数据流进行管理。

  1. 增强的HDFS Sink  

 HDFS Sink中默认的Serializer会每写一行在行尾添加一个换行符,通常日志本身带有换行符,这样会导致每条日志后面多一个空行,通过配置调整使其

自动增加换行符,增加HDFS Sink吞吐量,减少HDFSFlush次数。



 
copyright@2022长安大学 | 高性能计算平台