二百一十一、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配置文件里面的参数只是为了演示而已,具体实践时需要根据实际情况进行调整,不要照搬!!!

相关推荐
姜穆澜11 小时前
Apache Hive 4.x 完全学习指南
大数据·hive
程序员梅雨4 天前
大数据修炼之路(二):HDFS 核心架构与面试详解
大数据·hdfs
Gl�ria4 天前
Hive SQL 执行卡住完整排查 & 处理
hive·hadoop·sql
网络豆6 天前
Apache Hive 鸿蒙 PC 适配全记录:以 Qt 客户端打通 HiveQL、监控与元数据访问
hive·apache·harmonyos
fastjson_7 天前
Hive3.1.3 安装使用
hive
爱吃火鸡面呀8 天前
HDFS 架构深度解析:从核心组件到数据读写全流程
hadoop·hdfs·架构
爱吃火鸡面呀9 天前
HDFS 文件读取流程深度解析:从客户端请求到数据落地的完整链路
大数据·hadoop·hdfs
崖边看雾10 天前
Hadoop —— HDFS 写数据流程
大数据·hadoop·hdfs
崖边看雾10 天前
Hadoop —— HDFS 读流程
大数据·hadoop·hdfs
磁场转动100万匹10 天前
HDFS 与 MapReduce 核心原理详解
hadoop·hdfs·mapreduce