flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(比如文本、HDFS、Hbase等)的能力,所以学会使用flume,是在学习大数据处理中比不可少的事情,学会Flume配置使用,能处理很多数据场景
一、安装要求
(1).java运行环境,要安装jdk1.7以上版本
(2).系统内存要足够用运行agent组件source,channel和sink。
(3).磁盘空间要足够
(4).目录权限,agent要有足够读写权限
二、下载安装Flume
(1).cd到指定flume目录,执行以下命令下载flume
wget http://mirrors.hust.edu.cn/apache/flume/1.7.0/apache-flume-1.7.0-bin.tar.gz
(2).解压文件
tar -xzvf apache-flume-1.7.0-bin.tar.gz
(3).进行flume目录
cd apache-flume-1.7.0-bin
(4).进行conf文件夹根据模板创建文件
cd conf/
cp flume-env.sh.template flume-env.sh
cp flume-conf.properties.template flume-conf.properties
(5).设置环境变量
vi /etc/profile
export FLUME_HOME=/opt/BIG3/flume/apache-flume-1.7.0-bin
export FLUME_CONF=$FLUME_HOME/conf
export PATH=$PATH:$FLUME_HOME/bin
source /etc/profile
(6).编辑flume-env.sh,具体设置请看截图
vi flume-env.sh
(7).验证是否安装成功
flume-ng version
说明:出现上面的信息,表示安装成功了
三、配置文件实例
(1).编写文件
本文件为测试通过flume 监控文件,把文件写入到kafka
vim flume_conf.conf
a.sinks=k1
a.sources=s1 s2
a.channels=r1
#定义source是从文本文件过来
a.sources.s1.type=exec
a.sources.s1.command=tail -F /opt/BIG3/flume/a.log
a.sources.s2.type=exec
a.sources.s2.command=tail -F /opt/BIG3/flume /b.log
#sink 是kafka topic 是test broker 是10.20.25.199:9092
a.sinks.k1.type=org.apache.flume.sink.kafka.KafkaSink
a.sinks.k1.kafka.topic = test
a.sinks.k1.kafka.bootstrap.servers =node1:9092
a.sinks.k1.kafka.flumeBatchSize = 20
a.sinks.k1.kafka.producer.acks = 1
a.sinks.k1.kafka.producer.linger.ms = 1
a.sinks.ki.kafka.producer.compression.type = snappy
a.channels.r1.type=file
a.channels.r1.checkpointDir=/root/flume/checkpoint
a.channels.r1.dataDirs=/root/flume/data
a.sources.s2.channels=r1
a.sources.s1.channels=r1
a.sinks.k1.channel=r1
(2).启动flume服务
./bin/flume-ng agent --conf conf --conf-file conf/flume-conf.conf --name a -Dflume.root.logger=INFO,console
PS:看到启动文件无保存且有started,即为启动成功
(3).测试
cd /opt/BIG3/flume/
echo "猿先生大数据">a.log
echo "请关注">b.log
查看kafka test主题
四、总结
如果大家觉得我写的好的,请点击右上角进行关注我,大家有大数据技术类的问题,欢迎在评论里面留言,我会一一回复,希望跟大家共同努力,共同进步。