Flume概览

一.flume概览

1.概述:

    Flume是一个高可用的,高可靠,分布式的海量日志采集,聚合和传输的系统。它具有基于流数据流的简单灵活的架构。它具有可靠的可靠性机制和许多故障 转移和恢复机制,具有强大的容错性。它使用简单的可扩展数据模型,允许在线分析应用程序。

2.大数据架构
  • 数据采集(爬虫\日志数据\flume)
  • 数据存储(hdfs/hive/hbase(nosql))
  • 数据计算(mapreduce/hive/sparkSQL/sparkStreaming/flink)
  • 数据可视化
3.Flume基于流式架构,容错性强,也很灵活简单。
4.Flume、Kafka用来实时进行数据收集,Spark、Flink用来实时处理数据,impala用来实时查询。

二.flume角色

1.source
  • 数据源,用户采集数据,source产生数据流,同时会把产生的数据流传输到channel。
2.channel
  • 传输通道,用于桥接source和sink
3.sink
  • 下沉,用于收集channel传输的数据,将数据源传递到目标源
4.event
  • 在flume中使用事件作为传输的基本单元
Flume角色
5.Flume常用的Type

(1)source

名称 含义 注意点
avro avro协议的数据源 主要用于agent to agent之间的连接
exec unix命令 可以命令监控文件 tail -F
spooldir 监控一个文件夹 不能含有子文件夹,不监控windows文件夹,处理完文件不能再写数据到文件 ,文件名不能冲突
TAILDIR 既可以监控文件也可以监控文件夹 支持断点续传功能, 重点使用这个
netcat 监听某个端口
kafka 监控卡夫卡数据

(2)sink

名称 含义 注意点
kafka 写到kafka中
HDFS 将数据写到HDFS中
logger 输出到控制台
avro avro协议 配合avro source使用

(3)channel:

名称 含义 注意点
memory 存在内存中
kafka 将数据存到kafka中
file 存在本地磁盘文件中
6.flume的启动参数

(1)命令

参数 描述
help 打印帮助信息
agent 运行一个Flume Agent
avro-client 运行一个Avro Flume 客户端
version 显示Flume版本。

(2)全局选项

参数 描述
--conf,-c 目录使用配置文件。指定配置文件放在什么目录
--classpath,-C 追加一个classpath
--dryrun,-d 不真正运行Agent,而只是打印命令一些信息。
--plugins-path 插件目录列表。默认:$FLUME_HOME/plugins.d
-Dproperty=value 设置一个JAVA系统属性值。
-Xproperty=value 设置一个JAVA -X的选项。

(3)Agent选项

参数 描述
--conf-file ,-f 指定配置文件,这个配置文件必须在全局选项的--conf参数定义的目录下。(必填)
--name,-n Agent的名称(必填)
--help,-h 帮助

日志相关:

  • -Dflume.root.logger=INFO,console

该参数将会把flume的日志输出到console,为了将其输出到日志文件(默认在FLUME_HOME/logs),可以将console改为LOGFILE形式,具体的配置可以修改$FLUME_HOME/conf/log4j.properties

  • -Dflume.log.file=./wchatAgent.logs

该参数直接输出日志到目标文件

(4)Avro客户端选项

参数 描述
--rpcProps,-P 连接参数的配置文件。
--host,-H Event所要发送到的Hostname。
--port,-p Avro Source的端口。
--dirname Avro Source流到达的目录。
--filename,-F Avro Source流到达的文件名。
--headerFile,-R 设置一个JAVA -X的选项。

启动Avro客户端要么指定--rpcProps,要么指定--host和--port

三.Flume传输过程:

    source监控某个文件或数据流,数据源产生新的数据,拿到该数据后,将数据封装在一个Event中,并put到channel后commit提交,channel队列先进先出,sink去channel队列中拉取数据,然后写入到HDFS中。

你可能感兴趣的:(Flume概览)