欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Flume 初探

程序员文章站 2022-05-29 10:33:55
Apache 是一个高可用、高可靠的,分布式的海量日志采集、聚合、传输系统,基于流式架构,灵活简单。 Flume 最主要的作用就是实时读取服务器本地磁盘的数据,将数据写入HDFS中。 Flume组成架构详解: Source输入端常用的类型有:spooling directory、exec、avro、 ......
apache 是一个高可用、高可靠的,分布式的海量日志采集、聚合、传输系统,基于流式架构,灵活简单。 flume 最主要的作用就是实时读取服务器本地磁盘的数据,将数据写入hdfs中。 flume组成架构详解: source输入端常用的类型有:spooling directory、exec、avro、syslog、netcat 等 put事务的流程: doput:将批数据先写入临时缓冲区putlist docommit:检查channel内存队列是否足够合并 dorollback;channel内存队列空间不足,回滚数据 channel是位于source和sink之间的缓冲区,flume自带两种channel:memorychannel和filechannel memorychannel是基于内存的缓存,在不需要关心数据丢失的情景下使用。 filechannel是flume的持久化channel,系统宕机不会丢失数据。 take事务: dotake:先将数据取到临时缓冲区takelist docommit:如果数据发送成功,则清除临时缓冲区的takelist dorollback:数据发送过程中如果出现异常,rollback将临时缓冲区takelist中的数据归还给channel内存队列 sink组件常见的目的地包括: hdfs、kafka、avro、logger、file、自定义。 sink不断地轮询channel中的事件且批量地移除它们,并将这些事件批量写入到存储或索引系统、或者被发送到另一个flume agent。 sink是完全事务性的。在从channel批量删除数据之前,每个sink用channel启动一个事务。批量事件一旦成功写出到存储系统或下一个flume agent,sink就利用channel提交事务。事务一旦被提交,该channel从自己的内部缓冲区删除事件。 sink组件目的地包括hdfs、logger、avro、thrift、ipc、file、null、hbase、solr、自定义。 agent是一个jvm进程,是flume数据传输的基本单元 agent主要有3个部分组成,source、channel、sink。