章节内容
上一节我们完成的内容:
Flume 简介
Flume 组件的介绍
Flume 架构、核心组件
Flume 下载、安装、配置
背景介绍
这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。
2C4G 编号 h121
2C4G 编号 h122
2C2G 编号 h123
文档推荐
除了官方文档以外,这里有一个写的很好的中文文档:
HelloWorld
我们要实现一个简单的conf,完成如下的目的:
监听本机 8888 端口,Flume 将监听的数据实时显示在控制台
使用 telnet 工具可以向 8888 端口发送数据
监听端口数据 选择 netcat source
Channel 选择 memory
数据实时显示 选择 logger sink
安装工具
如果你已经安装了,可以跳过
sudo apt install telnet
检查端口是否被占用,如果占用了,换一个端口,根据你的实际情况。
lsof -i:8888
配置文件
我的目录都放倒了 flume_test 下,方便我后续的归档。
cd /opt/wzk/flume_test vim flume-netcat-logger.conf
写入如下的内容:
# a1是agent的名称。source、channel、sink的名称分别为:r1 c1 k1 a1.sources = r1 a1.channels = c1 a1.sinks = k1 # source a1.sources.r1.type = netcat # 注意这里的IP的地址!!!!!!!!!! a1.sources.r1.bind = h122.wzk.icu a1.sources.r1.port = 8888 # channel a1.channels.c1.type = memory a1.channels.c1.capacity = 10000 a1.channels.c1.transactionCapacity = 100 # sink a1.sinks.k1.type = logger # source、channel、sink之间的关系 a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1
这里对上述的内容进行一点点介绍:
Memory Channel 是使用内存缓冲 Event 的 Channel 实现。速度比较快速,容量会受到 JVM 内存大小的限制,可靠性不高。
适用于允许丢失数据,但对性能要求较高的日志采集业务。
启动服务
配置完毕后,我们启动服务。
$FLUME_HOME/bin/flume-ng agent --name a1 \ --conf-file flume-netcat-logger.conf \ -Dflume.root.logger=INFO,console
上述的参数解释:
- name 定义Agent的名字,要与参数文件一致
- conf-file 指定参数文件位置
- -D 表示 Flume 运行时动态修改 flume.root.logger 参数属性值,并将控制台日志打印级别设置为INFO。
发送数据
连接到 8888 进行数据的发送!
telnet h122.wzk.icu 8888
查看结果
Flume收到了消息,可以观察控制台输出
此时!我们的第一个HelloWorld已经完毕!