一、原理
1.Linux环境Flume装置配置及应用
2.Apache Flume 入门教程
3.flume的部署和avro source测试;netcast source测试
4.Flume部署及应用
5.Flume监听本地Linux-hive日志文件采集到HDFS
1.Flume组件
- Flume的作用: 可用于实时计算和离线计算的数据源采集工具 。
- Flume 的外围(agent)就是把数据从数据源收集过去,再送到目的地。为了保障高牢靠输送肯定胜利,
在送到目的地之前,会先缓存数据,待数据真正达到目的地后,删除本人缓存的数据。 - Flume : 传输的数据的根本单位是 Event,如果是文本文件,通常是一行记录,这也是事务的根本单位。
- Event : (蕴含:headers:{} 、body) 从 Source,流向 Channel,再到 Sink,自身为一个 byte 数组,在
flume中应用事件作为传输的根本单元。 - Source : 数据源,用户从数据发生器采集接收数据,source产生数据流,同时会把产生的数据流以Flume的
event格局传输到一个或者多个channel。 - Channel : 就像一个管道(队列),接管 Source 的输入,再推送给 Sink 生产。数据直到进入到下一个Channel中
或者进入终端才会被删除。即:直达Event长期存储,在 sources 和 sinks之间起一个连贯作用 。Channel 是一
个残缺的事务,这一点保障了数据在收发的时候的一致性. 并且它能够和任意数量的source和sink链接。 - Sink : 下沉,取出 Channel 中的数据,而后送给内部源(HDFS、HBase)或者其余 Source。
2.装置与配置
(1).Flume前提环境
java环境
(2).解压apache-flume-1.6.0-bin.tar.gz安装包到目标目录下
# 解压tar -zxvf apache-flume-1.6.0-bin.tar.gz.tar.gz -C /usr/local# 更改名字cd /usr/localmv apache-flume-1.6.0-bin flume
(3).批改配置文件: flume-env.sh
# 进入配置文件目录cd /usr/local/flume/conf# 复制配置文件cp flume-env.sh.template flume-env.sh# 批改以下信息vi flume-env.shexport JAVA_HOME=/usr/local/jdk
(4).配置环境变量
# 关上配置文件vi /etc/profile# 追加以下内容export FLUME_HOME=/usr/local/flumeexport PATH=$PATH:$FLUME_HOME/bin# 申明环境变量,即让环境变量立刻失效source /etc/profile# 应用命令查看Flume版本信息flume-ng version# 执行后果Flume 1.6.0Source code repository: https://git-wip-us.apache.org/repos/asf/flume.gitRevision: 2561a23240a71ba20bf288c7c2cda88f443c2080Compiled by hshreedharan on Mon May 11 11:15:44 PDT 2015From source with checksum b29e416802ce9ece3269d34233baf43f
(5).配置Flume示例1 -- netcat source
netcat source + memory channel + logger sink
# 应用Flume的要害就是写配置文件,别离配置Source、Channel、Sink,而后把三者串联起来; 比方这里写一个配置文件$FLUME_HOME/conf/example_netcat.conf,应用netcat source、memory channel、logger sink,# example_netcat.conf内容如下:a1.sources = r1a1.sinks = k1a1.channels = c1a1.sources.r1.type = netcata1.sources.r1.bind = mastera1.sources.r1.port = 55555a1.sinks.k1.type = loggera1.channels.c1.type = memorya1.sources.r1.channels = c1a1.sinks.k1.channel = c1
(6).启动Flume agent
flume-ng agent 应用ng启动agent--name a1指定的agent别名--conf YYYY/ 指定配置所在的文件夹--conf-file YYYY/XXXXXX 指定配置文件-Dflume.root.logger=INFO,console 可选,指定日志输入级别(输入到控制台)& 可选,Flume在后盾运行# 命令示例,依据指定的配置文件启动Agentflume-ng agent \--name a1 \--conf $FLUME_HOME/conf \--conf-file $FLUME_HOME/conf/example_netcat.conf \-Dflume.root.logger=INFO,console
(7).应用telnet输出数据验证
telnet master 55555# 启动后输出内容123就能够在Flume看到如下数据:Event: { headers:{} body: 31 32 33 0D 123. }Event是FLume数据传输的根本单元Event = 可选的header + byte array