flume的使用

flume包括三部分:
source(理解为接收器)接受监听到的数据
channel(数据传输通道)
sink(发送器)把souce传递过来的数据再往下游传递——hadoop hdfs(数据存储)

数据采集案例
1 使用flume来监听端口,当端口中有数据产生时,flume获取该数据并打印到控制台

端口8888 写数据hello ,flume监听变化 ,打印到控制台,显示hello

[root@master ~]# vim /etc/profile

#flume配置
export FLUME_HOME=/home/wj/apache/apache-flume-1.8.0-bin/
export PATH=$PATH:$FLUME_HOME/bin

source /etc/profile

同时修改conf/flume-env.sh  文件中的JDK目录

编写脚本
flume脚本的构成:1)指定当前数据采集框架的实例名称,如a1
2)指定source组件的详细参数 netcat a1.sources.r1.bind = 192.168.9.26
如何查看当前虚拟机ip:ifconfig
3)指定channel组件的详细参数
基于内存的传输
4)指定sink组件的详细参数
a1.sinks.k1.type = logger
5)将flume的三个组件进行整合

vim flume1.conf 监听一个端口8888

############################################################
# 1、命名:一个agent(进程)内各角色别名:a1
############################################################
#sources别名:r1
a1.sources = r1 
#sink别名:k1
a1.sinks = k1
#channel别名:c1
a1.channels = c1

############################################################
# 2、source参数配置:
############################################################
#source类型:netcat,监听,将流经端口的每一个文本行数据作为Event输入
a1.sources.r1.type = netcat
#监听的主机ip:
a1.sources.r1.bind = 主机名
#监听的端口:
a1.sources.r1.port = 8888

############################################################
# 3、channel参数配置:
############################################################
#channel类型:
a1.channels.c1.type = memory
#默认该通道中最大的可以存储的event数量是1000
a1.channels.c1.capacity = 1000
#每次最大可以source中拿到或者送到sink中的event数量也是100
a1.channels.c1.transactionCapacity = 100

############################################################
# 4、channel参数配置:
############################################################
#sink类型:以日志的方式输出
a1.sinks.k1.type = logger

############################################################
# 5、集成一个agent当中的各个角色:
############################################################
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

保存退出 :wq

cat flume.conf可查看

Xshell点击旧窗口复制会话,在新窗口灌入数据

练习:监听端口,捕获数据,打印到控制台

1)下载软件命令
yum install -y telnet从互联网下载指定软件telnet到当前Liux系统

2)回主窗口输入运行命令
[root@node1 ~]# flume-ng agent -n a1 -c conf -f flume1.conf -D flume.root.logger=INFO.console
运行flume脚本
3)切回新窗口,打开8888端口,灌入数据[root@node1 ~]# telnet 192.168.9.26 8888

[root@node1 ~]# telnet 192.168.9.26 8888
Trying 192.168.9.26...
Connected to 192.168.9.26.
Escape character is '^]'.
keda
OK
taiyuankeji
OK

原文地址:https://www.cnblogs.com/aprilwang/p/10957843.html