Hadoop-18 Flume HelloWorld 第一个Flume尝试!编写conf实现Source+Channel+Sink 控制台查看收集到的数据 流式收集 原创
章节内容
上一节我们完成的内容:
- Flume 简介
- Flume 组件的介绍
- Flume 架构、核心组件
- Flume 下载、安装、配置
背景介绍
这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。
- 2C4G 编号 h121
- 2C4G 编号 h122
- 2C2G 编号 h123
文档推荐
除了官方文档以外,这里有一个写的很好的中文文档:
https://flume.liyifeng.org/
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已经完毕!
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)