一、Flume 简介
1.Flume 提供了一个分布式的,可靠的,对大量数据的日志高效收集,聚集,移动的服务,Flume 只能在 Unix 环境下运行。
2.Flume 基于流式架构,容错性强,也结构简单。
3.Flume,Kafka 用来实时数据收集,Spark,Flume 用来实时处理数据,impala 用来实时查询。
二、Flume 角色
1.source
用于采集数据,source 是产生数据流的地方,同时 source 会将产生的数据流传输到 Channel ,这个类似 java IO 部分的 Channel。
2.Channel
用于桥接 source 和Sink ,类似于一个队列。
3.Sink
从 Channel 收集数据,将数据写到目标源(可以是下一个 source ,也可以是 HDFS 或者 HBase。
4.Event
传输单元,Flume 传输的基本单元,以事件的形式将数据从源头传输到目的地。
三、Flume 传输过程
source 监控某个文件或者数据流,数据源产生新的数据,拿到该数据后,将数据封装到一个 Event 中,并 put 到 Channel 后 commit 提交,Channel 的队列先进先出,Sink 去 Channel 队列拉取数据,然后写入到 HDFS 中。
四、Flume 部署及使用
1.文件配置
查询JAVA_HOME: echo $JAVA_HOME
显示/opt/module/jdk1.8.0_144 /opt/module/jdk1.8.0_144
安装Flume
[itstar@bigdata113 software]$ tar -zxvf apache-flume1.8.0-bin.tar.gz -C /opt/module/
改名:
[itstar@bigdata113 conf]$ mv flume-env.sh.template flume-env.sh