当前位置: 首页 > news >正文

二百一十一、Flume——Flume实时采集Linux中的Hive日志写入到HDFS中(亲测、附截图)

一、目的

为了实现用Flume实时采集Hive的操作日志到HDFS中,于是进行了一场实验

二、前期准备

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

(二)查看Hive的日志在Linux系统中的文件路径

[root@hurys23 conf]# find / -name hive.log
/home/log/hive312/hive.log

(三)在HDFS中创建文件夹flume,即Hive日志写入的HDFS文件

三、创建Flume的任务文件

[root@hurys23 conf]# vi  flume-file-hdfs.conf

# Name the components on this agent
a2.sources = r2
a2.sinks = k2
a2.channels = c2

# Describe/configure the source
a2.sources.r2.type = exec
a2.sources.r2.command = tail -F /home/log/hive312/hive.log

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

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

# Bind the source and sink to the channel
a2.sources.r2.channels = c2
a2.sinks.k2.channel = c2

注意

1、配置文件中的各项参数需要调式,这里只是为了演示,实现目的、打通路径即可!实际在项目中操作时需要调试参数。

2、a2.sources.r2.command = tail -F /home/log/hive312/hive.log           为hive.log在Linux中的路径

3、a2.sinks.k2.hdfs.path = hdfs://hurys23:8020/flume/%Y%m%d/%H      为写入的HDFS文件路径

四、启动Flume任务文件

[root@hurys23 flume190]# bin/flume-ng agent -n a2  -f /usr/local/hurys/dc_env/flume/flume190/conf/flume-file-hdfs.conf

五、Flume任务运行时写入的HDFS文件状况

(一)目前时间

2023/12/5 14时

(二)HDFS的flume文件夹中根据时间戳自动生成20231205文件夹、14文件夹及其logs文件

(三)HDFS的log文件内容,以logs-.1701757858263为例

六、关闭Flume任务

首先jps查看Flume任务,然后直接kill程序

[root@hurys23 conf]# jps
28385 NodeManager
27938 SecondaryNameNode
16642 RunJar
27496 NameNode
27657 DataNode
8717 Jps
28215 ResourceManager
8282 Application
[root@hurys23 conf]# kill -9 8282


Hive日志成功采集到HDFS!演示就先到这里吧,后面如果有需要就再更新。

再提醒一遍,博客中Flume配置文件里面的参数只是为了演示而已,具体实践时需要根据实际情况进行调整,不要照搬!!!

http://www.lryc.cn/news/258361.html

相关文章:

  • python 实现 AIGC 大模型中的概率论:生日问题的基本推导
  • YOLOv8算法改进【NO.87】引入上下文引导网络(CGNet)的Light-weight Context Guided改进C2_f
  • GPT-4V 在机器人领域的应用
  • Java基础语法之访问修饰限定符
  • 算法通关村第十八关 | 青铜 | 回溯
  • 蓝牙在物联网中的应用,相比WIFI和NFC的优势?
  • Altair推出 Altair RapidMiner 2023 平台,提供生成式 AI 功能
  • 包管理工具npm与yarn
  • 深度学习 Day11——T11优化器对比实验
  • (十六)Flask之蓝图
  • 面试问题--文件IO
  • SpringBoot中实现跨域的几种常用方式
  • MeterSphere实战(一)
  • ESP32-Web-Server编程-在网页中插入图片
  • <软考>软件设计师-4知识产权与标准化(总结)
  • 唯创知音WTVxxx语音芯片在免洗烘干机中的应用:提升用户体验与产品智能化
  • golang游戏服务器 - tgf系列课程06
  • 【Canvas】记录一次从0到1绘制风场空间分布图的过程
  • 如何用gpt改写文章 (1) 神码ai
  • IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Spring依赖注入数值问题
  • egen3 rowwise().maxCoeff()的使用
  • 关于Pytorch和Numpy中的稀疏矩阵sparse的知识点
  • 2024年AI云计算专题研究报告:智算带来的变化
  • 孩子还是有一颗网安梦——Bandit通关教程:Level 5 → Level 6
  • vue2-elementUI部分组件样式修改
  • fijkplayer flutter 直播流播放
  • Javascript的基本语法(规范)
  • vue chrome debugger 无效
  • JRT实现Cache的驱动
  • ESP32网络开发实例-Web串口(WebSerial)