二百一十二、Flume——Flume实时采集Linux中的目录文件写入到HDFS中(亲测、附截图)

一、目的

在实现Flume实时采集Linux中的Hive日志写入到HDFS后,再做一个测试,用Flume实时采集Linux中的目录文件,即使用 Flume 监听Linux整个目录的文件,并上传至 HDFS中

**二、**前期准备

(一)安装好Hadoop、Hive、Flume等工具

(二)Linux中被Flume监控的文件目录

/opt/flume/upload

最初的文件目录为空,没有任何文件!

(三)在HDFS中创建文件夹/flume/upload,即写入的HDFS文件路径

三、创建Flume的任务文件

root@hurys23 conf\]# vi flume-dir-hdfs.conf # agent a3 a3.sources = r3 a3.sinks = k3 a3.channels = c3 # Describe/configure the source a3.sources.r3.type = spooldir a3.sources.r3.spoolDir = /opt/flume/upload a3.sources.r3.fileSuffix = .COMPLETED a3.sources.r3.fileHeader = true #忽略所有以.tmp 结尾的文件,不上传 a3.sources.r3.ignorePattern = (\[\^ \]\*\\.tmp) # Describe the sink a3.sinks.k3.type = hdfs a3.sinks.k3.hdfs.path = hdfs://hurys23:8020/flume/upload/%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 ![](https://file.jishuzhan.net/article/1732227091308482561/652c5315869eda086b54cbb821dc2050.webp) 注意: 1、配置文件中的各项参数需要调式,这里只是为了演示,实现目的、打通路径即可!实际在项目中操作时需要调试参数。 2、a3.sources.r3.spoolDir = /opt/flume/upload 为监控的目录文件在Linux中的路径 3、a3.sinks.k3.hdfs.path = hdfs://hurys23:8020/flume/upload/%Y%m%d/%H 为写入的HDFS文件路径 ## 四、启动Flume任务文件 \[root@hurys23 flume190\]# bin/flume-ng agent -n a3 -f /usr/local/hurys/dc_env/flume/flume190/conf/flume-dir-hdfs.conf ![](https://file.jishuzhan.net/article/1732227091308482561/dd5bdbf6b5a16d0d1f87f8097a074729.webp) ## 五、在Linux中被监控的目录文件夹创建新的文件 ### (一)到Linux目录文件下 \[root@hurys23 \~\]# cd /opt/flume/upload/ \[root@hurys23 upload\]# ll 总用量 0 ### (二)创建.txt文件 .log文件 .tmp文件 \[root@hurys23 upload\]# touch atguigu.txt \[root@hurys23 upload\]# touch atguigu.log \[root@hurys23 upload\]# touch atguigu.tmp ### (三)创建文件后,ll查看文件状态 \[root@hurys23 upload\]# ll 总用量 0 -rw-r--r-- 1 root root 0 12月 5 16:08 atguigu.log.COMPLETED -rw-r--r-- 1 root root 0 12月 5 16:08 atguigu.tmp -rw-r--r-- 1 root root 0 12月 5 16:08 atguigu.txt.COMPLETED 由于配置文件中忽略所有以.tmp 结尾的文件,不上传,因此除了atguigu.tmp没变之外,其他文件名都变了 #忽略所有以.tmp 结尾的文件,不上传 a3.sources.r3.ignorePattern = (\[\^ \]\*\\.tmp) ## 六、Flume任务运行时写入的HDFS文件状况 ### (一)目前时间戳 2023/12/5 16时 ![](https://file.jishuzhan.net/article/1732227091308482561/fa2a7a455ce59c8e7d5bfee10252d92e.webp) ### (二)HDFS生成了20231205文件夹、16文件夹及其upload文件 ![](https://file.jishuzhan.net/article/1732227091308482561/b048bac90c7055e06803b9b00d05b3c1.webp) ![](https://file.jishuzhan.net/article/1732227091308482561/ac7536f53d08c718d772b9f9cc9b3b43.webp) ## 七、关闭Flume任务 首先jps查看Flume任务,然后直接kill程序 \[root@hurys23 conf\]# jps 28385 NodeManager 27938 SecondaryNameNode 16642 RunJar 27496 NameNode 27657 DataNode 16113 Application 16310 Jps 28215 ResourceManager \[root@hurys23 conf\]# kill -9 16113 ![](https://file.jishuzhan.net/article/1732227091308482561/487195f9661cfbdeb18a6760605be972.webp) Flume实时采集Linux中的目录文件写入到HDFS的测试就先到这里,后面有问题的话再更新! 这种需求在实际项目中目前还没遇到过,就算提前熟悉一下吧,万一后面碰到呢

相关推荐
lilian12944 分钟前
linux系统mysql性能优化
linux·运维·mysql
共享家95271 小时前
linux_线程概念
linux·开发语言·jvm
乌云暮年2 小时前
Linux常用命令
linux·服务器·ssh·php
weixin_516023072 小时前
Geant4 安装---Ubuntu
linux·运维·ubuntu
稀液蟹-plus2 小时前
zynq-PS篇——bperez77中DMA驱动注意事项
linux·fpga
brave_zhao2 小时前
JavaBeanUtils javaBean转map, 实体类转map,实体集合转List<Map>
linux·windows·python
egoist20233 小时前
【Linux仓库】虚拟地址空间【进程·陆】
linux·运维·服务器·操作系统·进程·虚拟地址空间·fork
妫以明4 小时前
特辑:Ubuntu,前世今生
linux·运维·ubuntu
kfepiza4 小时前
Linux的NetworkManager的nmcli配置网桥(bridge) 笔记250712
linux·运维·网络·笔记·tcp/ip·ip·tcp
麟城Lincoln4 小时前
【Linux-云原生-笔记】系统引导修复(grub、bios、内核、系统初始化等)
linux·笔记·云原生·bios·grub·系统修复·系统引导