0


实训笔记:Flume基础 Mac Flume基本使用

一切都在hadoop打开的情况下运行。

1.采集指定端口数据

进入conf文件夹下,路径根据自己的进行修改,如何找到详情见我的 安装Flume

cd /opt/homebrew/Cellar/flume/1.9.0_1/libexec/conf

新建并编辑netcat-logger.conf文件

vim netcat-logger.conf

按a键,进入INSERT模式 注:输入法要为英文

复制进去

a1.sources = r1
a1.sinks = k1
a1.channels = c1

a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

a1.sinks.k1.type = logger

a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

记住端口号,这里为44444

按esc键,输入:wq,保存并退出

启动agent去采集数据

sudo flume-ng agent -c . -f netcat-logger.conf -n a1 -Dflume.root.logger=INFO,console
  • -c conf 指定Flume配置文件所在目录
  • -f conf/netcat-logger.conf 指定配置文件
  • -n a1 指定agent的名字

显示password:时输入密码

新开一个终端(右键终端,新建窗口),不要关闭这个终端

安装telnet

brew install telnet

使用telnet连接端口,即上面设置的端口44444

telnet localhost 44444

出现光标后,输入Hello world! 然后按回车会出现OK

这时之前的终端会显示如下信息:

采集成功

2.采集指定文件中新增数据至HDFS

创建配置文件

cd /opt/homebrew/Cellar/flume/1.9.0_1/libexec/conf
vim taildir-hdfs.conf

按a键,进入INSERT模式 注:输入法要为英文

复制进去:

a3.sources = r3
a3.sinks = k3
a3.channels = c3

# Describe/configure the source
a3.sources.r3.type = TAILDIR
a3.sources.r3.filegroups = f1
# 监听所有后缀为.log的文件
a3.sources.r3.filegroups.f1 = /Users/m/tmp/upload/.*log
# 用于记录文件读取的位置信息,.json文件自动生成
a3.sources.r3.positionFile = /Users/m/logs/flume/tail_dir.json

# Describe the sink
a3.sinks.k3.type = hdfs
#存放在hdfs的路径
a3.sinks.k3.hdfs.path = /flume/tailDir/%Y%m%d/%H
# 上传文件的前缀
a3.sinks.k3.hdfs.filePrefix = upload-
# 是否按照时间滚动文件夹
a3.sinks.k3.hdfs.round = true
# 多少时间单位创建一个新的文件夹
a3.sinks.k3.hdfs.roundValue = 1
# 重新定义时间单位
a3.sinks.k3.hdfs.roundUnit = hour
# 是否使用本地时间戳
a3.sinks.k3.hdfs.useLocalTimeStamp = true
# 积攒多少个 Event 才 flush 到 HDFS 一次
a3.sinks.k3.hdfs.batchSize = 100
# 设置文件类型,可支持压缩
a3.sinks.k3.hdfs.fileType = DataStream
# 多久生成一个新的文件
a3.sinks.k3.hdfs.rollInterval = 60
# 设置每个文件的滚动大小大概是 128M
a3.sinks.k3.hdfs.rollSize = 134217700
# 文件的滚动与 Event 数量无关
a3.sinks.k3.hdfs.rollCount = 0

# Use a channel which buffers events in memory
a3.channels.c3.type = memory
a3.channels.c3.capacity = 1000
a3.channels.c3.transactionCapacity = 100

# Bind the source and sink to the channel
a3.sources.r3.channels = c3
a3.sinks.k3.channel = c3

按esc键,输入:wq,保存并退出

a3.sources.r3.filegroups.f1 = /Users/m/tmp/upload/.*log
a3.sources.r3.positionFile = /Users/m/logs/flume/tail_dir.json

这两行后面的路径根据自己电脑上文件的位置来

a3.sinks.k3.hdfs.path = /flume/tailDir/%Y%m%d/%H

这行路径根据自己即将在hdfs设置的来

在hdfs创建目录

hadoop fs -mkdir /flume
hadoop fs -mkdir /flume/tailDir

hdfs修改目录读取权限

hadoop fs -chmod -R 777 /flume

启动:

cd /opt/homebrew/Cellar/flume/1.9.0_1/libexec
sudo flume-ng agent -c ./conf -f conf/taildir-hdfs.conf -n a3 -Dflume.root.logger=INFO,console

测试:

上面配置文件中这行:

a3.sources.r3.filegroups.f1 = /Users/m/tmp/upload/.*log

所以这里在 /Users/m/tmp/upload/路径下创建.log文件,根据自己的来

开启一个新终端窗口:

cd /Users/m/tmp/upload
touch a.log

写入测试数据:

echo "123" >> /Users/m/tmp/upload/a.log

监听成功:

http://localhost:9870/explorer.html#/flume/tailDir

成功

标签: flume

本文转载自: https://blog.csdn.net/qq_45952540/article/details/124371331
版权归原作者 MenW 所有, 如有侵权,请联系我们删除。

“实训笔记:Flume基础 Mac Flume基本使用”的评论:

还没有评论