第二章 Flume入门
2.1 Flume安装地址
下载地址
http://flume.apache.org/download.html
2.2 安装部署
- 下载 apache-flume-1.9.0-bin.tar.gz
- 上传到linux的/opt/module, 解压
- 修改apache-flume-1.9.0-bin的名称为flume
- 修改将flume/conf下的文件 mv flume-env.sh.template flume-env.sh, 编辑文件配置JAVA_HOME
第三章 Flume企业开发案例
3.1 监控端口-官方案例
3.1.1 案例分析
- 通过telnet工具向本机的44444端口发送数据
- Flume监控44444端口,通过配置source端获取数据
- Flume获取数据通过sink端写到控制台
3.1.2 案例实现
1. 安装telnet工具
安装工具,确认4444端口没有被占用; netstat -tunlp | grep 4444 或者 lsof -i:44444
2. 配置flume的source和sink
- 创建配置, 在flume下创建job目录, 在job目录下创建配置文件 mkdir job ;cd job ;touch flume-telnet-logger.conf
- 编辑配置文件 vim flume-telnet-logger.conf
# example.conf: 一个单节点的 Flume 实例配置 # 配置Agent a1各个组件的名称 a1.sources = r1 #Agent a1 的source有一个,叫做r1 a1.sinks = k1 #Agent a1 的sink也有一个,叫做k1 a1.channels = c1 #Agent a1 的channel有一个,叫做c1 # 配置Agent a1的source r1的属性 a1.sources.r1.type = netcat #使用的是NetCat TCP Source,这个的是别名,Flume内置的一些组件都是有别名的,没有别名填全限定类名 a1.sources.r1.bind = localhost #NetCat TCP Source监听的hostname,这个是本机 a1.sources.r1.port = 44444 #监听的端口 # 配置Agent a1的sink k1的属性 a1.sinks.k1.type = logger # sink使用的是Logger Sink,这个配的也是别名 # 配置Agent a1的channel c1的属性,channel是用来缓冲Event数据的 a1.channels.c1.type = memory #channel的类型是内存channel,顾名思义这个channel是使用内存来缓冲数据 a1.channels.c1.capacity = 1000 # 内存的容量1000个event a1.channels.c1.transactionCapacity = 100 # commit的事务容量 # 把source和sink绑定到channel上 a1.sources.r1.channels = c1 #与source r1绑定的channel有一个,叫做c1 a1.sinks.k1.channel = c1 #与sink k1绑定的channel有一个,叫做c1
- 启动agent
./bin/flume-ng agent --name a1 --conf conf/ --conf-file job/flume-telnet-logger.conf -Dflume.root.logger=INFO,console
--name a1 : agent名称,预配置文件要保持一致
注意事项 : 拷贝配置文件过去, 配置行后面的注释需要删除,否者启动报错;
[root@1a01vlb9508zzzz flume]# ./bin/flume-ng agent --name a1 --conf conf/ --conf-file job/flume-telnet-logger.conf -Dflume.root.logger=INFO,console
Info: Sourcing environment configuration script /home/flume/conf/flume-env.sh
Info: Including Hive libraries found via () for Hive access
+ exec /home/jdk/jdk1.8.0_251/bin/java -Xmx20m -Dflume.root.logger=INFO,console -cp '/home/flume/conf:/home/flume/lib/*:/lib/*' -Djava.library.path= org.apache.flume.node.Application --name a1 --conf-file job/flume-telnet-logger.conf
2021-03-04 14:15:32,721 (lifecycleSupervisor-1-0) [INFO - org.apache.flume.node.PollingPropertiesFileConfigurationProvider.start(PollingPropertiesFileConfigurationProvider.java:62)] Configuration provider starting
....
2021-03-04 14:15:32,864 (lifecycleSupervisor-1-5) [INFO - org.apache.flume.source.NetcatSource.start(NetcatSource.java:155)] Source starting
2021-03-04 14:15:32,875 (lifecycleSupervisor-1-5) [INFO - org.apache.flume.source.NetcatSource.start(NetcatSource.java:166)] Created serverSocket:sun.nio.ch.ServerSocketChannelImpl[/127.0.0.1:44444]
3. 测试验证
- telnet发送数据
2. 验证flume接受数据后输出
3.2 实时读取文件传输到HDFS案例
3.2.1 案例分析
3.1.2 案例实现
1. 配置Flume