Flume总结

Flume总结

Flume是一个高可用,高可靠的,分布式的海量的日志采集、聚合和传输的系统。Flume支持在日志系统中定制给列数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方的能力。

有三部分组成:Source/channel/Sink   Source相当于数据录入源,channel相当于数据传输通道;Sink相当于数据接收端。

  1. Event:事件

Event将传输的数据进行封装,是flume的基本单位,

通常是一行记录。

  1. flume架构

Source:专门收集数据的:处理各种类型,数据包括:

Avro、thrift、exec、jms、spooling、directory、netcat、sequence generator、syslog、http、legacy、自定义

Channel:存放临时数据,对数据进行简单的缓存,可以存放memory、jdbc、file等等

Sink:用于把元数据发送到目的地,包括:hdfs、logger、avro、thrift、ipc、file、null、hbase、solr、自定义

  1. 运行机制

Flume的核心是一个agent(代理),这个agent对外有两个进行交互的地方,一个是接受数据输入-source,一个是数据的输出sink,channel是一个数据的缓存区会临时存放数据,只用sink把成功发送出去,channel才会将数据删除。保证了数据的安全性。

  1. flume的广义用法

可以接受多个输入,可以多个输出到目的地

  1. flume的具体用法

flume+kafka+storm+mysql构建大数据实时系统

Flume+HDFS+KafKa+Strom实现实时推荐,反爬虫服务等服务在美团的应用

Flume+Hadoop+Hive的离线分析网站用户浏览行为路径

Flume+Logstash+Kafka+Spark Streaming进行实时日志处理分析

Flume+Spark + ELK新浪数据系统实时监控平台

总结:

Exec source和Spooling Directory Source 是两种常用的日志采集的方式,其中Exec source可以实现对日志的实时收集,Spooling Dirctory Source在对日志的实时收集上稍有欠缺,尽管Exec source可以实现对日志的实时采集,但是当Flume不运行或者指令执行错误时,Exec source将无法收集到日志系统,日志会出现丢失,从而无法保证收集日志的完整性。

 

Flume source进行适当总结:

  1. net Cat Source:监听一个指定的网络端口,即只要应用程序向这个端口里面写数据,这个source组件就可以获取到信息。
  2. Spooling Directory Source:监听一个指定的目录,即只要应用程序向这个指定的目录中添加新的文件,source组件就可以获取到该信息,并解析该文件的内容,然后写入到channle,写入完成后,标记该文件已完成或者删除该文件。
  3. Exec source:监听一个指定的命令,获取一条命令的结果作为它的数据源。
  4. Avro source:监听一个指定的Avro端口,通过Avro端口可以获取到Avro client发送过来的文件。即只要应用程序通过Avro端口发送文件,source组件就可以获取到该文件中的内

猜你喜欢

转载自blog.csdn.net/z1131321467/article/details/88870126