一 Flume介绍
1.1定义
1.2 内部原理介绍
参考链接
https://blog.csdn.net/gyshun/article/details/79710534
https://blog.csdn.net/a2011480169/article/details/51544664
1.3 为什么要这样使用
flume相当于一个数据传输管道针对特殊的数据处理系统(比如HBASE,HDFS)做了二次开发,形成专门的数据生产者和消费者。它可以从各种数据源中读取数据然后有针对特定系统的消费者(sink)实现,所以在项目中不论
是flume+kafka(kafka没有针对特定数据源采集数据的实现,也就是说你单独使用kafka采集数据的时候需要自己编码实现)
还是kafka+flume(把数据发送到HBASE,HDFS,flume充当了kafka的消费者,无需自己编码实现)
甚至是flume+kafka+flume,都是可以存在的,主要根据自己的需求
参考:https://blog.csdn.net/qq_41610418/article/details/82796966
二 部署过程
需求:
使用flume读取linux的文本文件,将文本文件中的数据发送到kafka
前置条件:
安装好zk集群,安装好kafka集群
配置Flume
1、在flume官方网站下载最新的flume
2、解决flume安装包
cd /export/software/
tar -zxvf apache-flume-1.6.0-bin.tar.gz -C /export/servers/
cd /export/servers/
ln -s apache-flume-1.6.0-bin flume
3、创建flume配置文件
cd /export/servers/flume/conf/
mkdir myconf
vi exec.conf
输入以下内容:
注:配置完毕,flume环节的工作基本完成。接下来准备目标数据文件。
4、准备目标数据的目录
mkdir -p /export/data/flume_sources/click_log
5、通过脚本创建目标文件并生产数据
for((i=0;i<=50000;i++));
do echo "message-"+$i >>/export/data/flume_sources/click_log/1.log;
done
注意:脚本名称叫做click_log_out.sh 需要使用root用户赋权。 chmod +x click_log_out.sh
6、开始打通所有流程
第一步:启动kafka集群
kafka-server-start.sh /export/servers/kafka/config/server.properties
第二步:创建一个topic并开启consumer zk01使用的是域名,实际应用可以使用服务器ip
kafka-console-consumer.sh --topic=test --zookeeper zk01:2181
第三步:执行数据上产的脚本
sh click_log_out.sh
第四步:启动flume客户端
./bin/flume-ng agent -n a1 -c conf -f conf/myconf/exec.conf -Dflume.root.logger=INFO,console
第五步:在第三步启动的kafka consumer窗口查看效果