网站流量日志 Flume收集--hdfs--基于文件闲置策略滚动| 学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习网站流量日志 Flume收集--hdfs--基于文件闲置策略滚动

开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第二阶段)网站流量日志 Flume 收集--hdfs--基于文件闲置策略滚动】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/694/detail/12186


网站流量日志 Flume 收集--hdfs--基于文件闲置策略滚动

内容介绍:

一、  问题介绍

二、  解决方案

三、  具体操作

四、  检验参数效果

 

一、  问题介绍

在使用 flumehdfs进行文件上传的时候,可以控制文件以何种方式进行滚动。将前面所采集的数据控制文件与文件的大小进行滚动,大小是128M,但是发现了一个现象,当数据没有满足滚动条件时,这个文件将会一直处在临时状态,原因是没有满足条件,所以无法进行滚动。

image.png

必须满足128M,才可以把这个文件关闭,然后重新打开一个新的文件往里面写数据。这在企业当中将会显得非常尴尬,因为这个文件一直是一个临时文件的状态。如果手动把这个 flume 结束,那么会完成滚动,但是企业当中肯定不能做。

进行演示:打开 flume 路径,ctrl+c结束滚动,flume 境关闭,然后刷新浏览器,发现文件名的.m去掉了

image.png

说明它不再是一个临时性文件,但这样做在企业中是不现实的,这时候产生了一个问题:当通过 flume 上传文件至 hdfs 当中,如果控制文件滚动的条件不满足怎么办?

 

二、  解决方案

通过配置文件,可以看到当下有三种条件:第一个是时间的间隔控制滚动。第二个是文件的大小控制滚动,第三个是 event 数量滚动。如果不满足,位于我们hdfs上的文件将会一直处于临时状态,这个文件后面会加一个.tmp

事实上在 flume 当中,还有一个参数叫做基于文件的闲置时间的策略。闲置时间英文叫做 timeout,用 flume hdfs 写文件的时候,如果经过多长时间没有数据,这时候也要发生一次文件的滚动,这个参数的默认值是零,就是说默认情况下闲置时间是没有的,就是没有数据的才会一直等待。既然有了这个参数,就可以把这个参数做修改。比如说设置为30秒,那么这30秒意味着如果经过30秒时间依然没有数据写入,那么这个时间也满足,也会发生一次滚动。这时候解决这个问题就非常的方便,需要在配置当中加入这个参数。

 

三、  具体操作:基于文件空闲时间滚动

flume 当中开启这样一个参数hdfs.idleTimeout,默认值是0。如果配置指定时间比如配置30秒,意味着如果30秒之内文件没有数据写入,那么即使其他的滚动条件不满足,此时依然进行文件的滚动,避免文件一直处于临时状态。

这就是 flume 提供的一个小功能,接下来看怎么让它生效。打开服务器,首先cdconf当中,使用 vim 打开配置文件 taildir,这篇文件是跟 hdfs 相关的,要写在sink当中,按insert进入编辑模式,在里面加上参数,前面的参数可以照着写,a1.sinks.k1.hdfs.,然后加上idleTimeout,再在后面写一个等号,它的默认单位是秒。

image.png

比如这里写20秒,这个意味着如果20秒没有数据写入,比如说这个文件空闲超过20秒的话,它依然会进行滚动。

四、  检验参数效果

确认无误之后保存这个参数,保存之后重新启动,用刚才的命令启动回车,启动完之后为了方便,把刚才这个文件名字重新改一个名字,cd到根目录下,之前叫做20181101,用cp命令给它改个名字叫20181102,保证两个文件不重复。

image.png

接下来把这一个新的文件20181102再放到weblog/test2路径下,这个时候执行相当于这个路径下又产生了一个新的文件,而且这个文件的格式也符合监控的格式。回车,文件已经发生变化,接下来开始往里面写,发现这个文件现在是一个.tmp文件,说明它还没有满足滚动,但是下来已经没有数据了,等待一会儿,显示write call back,打开浏览器刷新,发现文件发生了滚动。

image.png

相当于刚才配置的参数在做一个兜底操作,也就是说如果没有满足128M并且达到了这个空闲闲置的时间,那么依然进行文件的滚动,这样操作就会非常方便。这个间隔可以根据企业当中来自己配置,它的单位是秒,可以配置20秒,可以配置30秒,可以配置50秒,这样可以避免因为后面没有数据或者没有相关的东西,使得条件不满足,一直处于临时状态,这就是 flume 提供的一些参数属性。具体其他的想了解可以打开 flume 官网做一个具体的了解,但这个参数非常的重要,控制文件闲置的时间策略,如果文件控制多少时间没有数据依然进行文件的滚动,这样就符合实际情况了。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3月前
|
存储 数据采集 数据处理
【Flume拓扑揭秘】掌握Flume的四大常用结构,构建强大的日志收集系统!
【8月更文挑战第24天】Apache Flume是一个强大的工具,专为大规模日志数据的收集、聚合及传输设计。其核心架构包括源(Source)、通道(Channel)与接收器(Sink)。Flume支持多样化的拓扑结构以适应不同需求,包括单层、扇入(Fan-in)、扇出(Fan-out)及复杂多层拓扑。单层拓扑简单直观,适用于单一数据流场景;扇入结构集中处理多源头数据;扇出结构则实现数据多目的地分发;复杂多层拓扑提供高度灵活性,适合多层次数据处理。通过灵活配置,Flume能够高效构建各种规模的数据收集系统。
66 0
|
30天前
|
SQL 分布式计算 Hadoop
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
40 2
|
30天前
|
存储 数据采集 分布式计算
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
41 1
|
2月前
|
存储 分布式计算 资源调度
通过日志聚合将作业日志存储在HDFS中
如何通过配置Hadoop的日志聚合功能,将作业日志存储在HDFS中以实现长期保留,并详细说明了相关配置参数和访问日志的方法。
30 0
通过日志聚合将作业日志存储在HDFS中
|
3月前
|
存储 分布式计算 大数据
【Flume的大数据之旅】探索Flume如何成为大数据分析的得力助手,从日志收集到实时处理一网打尽!
【8月更文挑战第24天】Apache Flume是一款高效可靠的数据收集系统,专为Hadoop环境设计。它能在数据产生端与分析/存储端间搭建桥梁,适用于日志收集、数据集成、实时处理及数据备份等多种场景。通过监控不同来源的日志文件并将数据标准化后传输至Hadoop等平台,Flume支持了性能监控、数据分析等多种需求。此外,它还能与Apache Storm或Flink等实时处理框架集成,实现数据的即时分析。下面展示了一个简单的Flume配置示例,说明如何将日志数据导入HDFS进行存储。总之,Flume凭借其灵活性和强大的集成能力,在大数据处理流程中占据了重要地位。
69 3
|
3月前
|
SQL 关系型数据库 MySQL
MySQL 常见日志清理策略
MySQL 数据库服务器使用多种类型的日志来记录操作和事件,这对于故障诊断、审计和性能分析非常重要。然而,这些日志文件会随着时间的推移而不断增长,可能会占用大量的磁盘空间。因此,定期清理这些日志是必要的,本篇文章我们一起来学习下如何清理 MySQL 中的日志文件。
163 3
|
3月前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
52 0
|
3月前
|
SQL 安全 测试技术
【数据守护者必备】SQL数据备份与恢复策略全解析:从全量到日志备份,手把手教你确保企业信息万无一失的实战技巧!
【8月更文挑战第31天】数据库是企业核心业务数据的基石,为防止硬件故障、软件错误或人为失误导致的数据丢失,制定可靠的备份与恢复策略至关重要。本文通过一个在线购物平台的案例,详细介绍了使用 SQL Server 进行全量备份、差异备份及事务日志备份的方法,并演示了如何利用 SQL Server Agent 实现自动化备份任务。此外,还提供了数据恢复的具体步骤和测试建议,确保数据安全与业务连续性。
141 0
|
3月前
|
消息中间件 API C#
【Azure API 管理】APIM添加Log-to-eventhub的策略后,一些相关APIM与Event Hub的问题
【Azure API 管理】APIM添加Log-to-eventhub的策略后,一些相关APIM与Event Hub的问题
|
3月前
|
存储 API C#
【Azure API 管理】在APIM 中添加 log-to-eventhub 策略,把 Request Body 信息全部记录在Event Hub中
【Azure API 管理】在APIM 中添加 log-to-eventhub 策略,把 Request Body 信息全部记录在Event Hub中

热门文章

最新文章