自用华为ICT云赛道Big Data第五章知识点-Flume海量日志聚合

Flume是什么

  • Flume是流式日志采集工具,Flume提供对数据进行简单处理并且写到各种数据接受方的能力,Flume提供从本地文件(spooling directory source)、实时日志(taildir、exec)、REST消息、Thrift、Avro、Syslog、Kafka等数据源上收集数据的能力。

Flume能干什么

  • 提供从固定目录下采集日志信息到目的地(HDFS、HBase、Kafka)能力。
  • 提供实时采集日志信息(taildir)到目的地的能力。
  • Flume支持级联(多个Flume对接起来),合并数据的能力。
  • Flume支持按照用户定制采集数据的能力。

Flume架构

  • Flume基础架构:Flume可以单节点直接采集数据,主要应用于集群内数据。
  • Flume多Agent架构:Flume可以将多个节点连接起来,将最初的数据源经过收集,存储到最终的存储系统中。主要应用于集群外的数据导入到集群内。

Flume多Agent合并

Flume架构图

基本概念-Source

  • Source负责接收events或通过特殊机制产生events,并将events批量放到一个或多个Channels。
    • 有驱动和轮询2种类型的Source。
    • 驱动型Source:是外部主动发送数据给Flume,驱动Flume接受数据。
  • 轮询Source:是Flume周期性主动去获取数据。
  • Source必须至少和一个Channel关联。

基本概念-Channel

  • Channel位于Source和Sink之间,Channel的作用类似队列,用于临时缓存进来的events,当Sink成功地将events发送到下一跳的Channel或最终目的,events从Channel移除。
  • Channels支持事务,提供较弱的顺序保证,可以连接任何数量的Source和Sink。
  • 不同的Channel提供的持久化水平也是不一样的:
    • Memory Channel:不会持久化。
    • File Channel:基于WAL(预写式日志Write-Ahead Log)实现。
    • JDBC Channel:基于嵌入式Database实现。
  • MemoryChannel:消息存放在内存中,提供高吞吐,但不提供可靠性;可能丢失数据。
  • FileChannel:对数据持久化;但是配置较为麻烦,需要配置数据目录和checkpoint目录;不同的FileChannel均需要配置一个checkpoint目录。
  • JDBCChannel:内置的derby数据库,对event进行了持久化,提供高可靠性;可以取代同样具有持久特性的FileChannel。

基本概念-Sink

  • Sink负责将events传输到下一跳或最终目的,成功完成后将events从Channel移除。
  • Sink必须作用于一个确切的Channel。

Flume支持采集日志文件

  • Flume支持将集群内的日志文件采集并归档到HDFS、HBase、Kafka上,供上层应用对数据分析、清洗数据使用

Flume支持多级级联和多路复制

  • Flume支持将多个Flume级联起来,同时级联节点内部支持数据复制。

Flume级联消息压缩、加密

  • Flume级联节点之间的数据传输支持压缩和加密,提升数据传输效率和安全性。

Flume数据监控

Flume传输可靠性

  • Flume在传输数据过程中,采用事务管理方式,保证传输过程中数据不会丢失,增强了数据传输的可靠性,同时缓存在Channel中的数据如果采用FileChannel,进程或者节点重启数据不会丢失。

Flume传输可靠性(failover)

  • Flume在传输数据过程中,如果下一跳的Flume节点故障或者数据接受异常时,可以自动切换到另外一路上继续传输。

Flume传输过程中数据过滤

  • Flume在传输数据过程中,可以简单的对数据简单过滤、清洗,可以去掉不关心的数据,同时如果需要对复杂的数据过滤,需要用户根据自己的数据特殊性,开发过滤插件,Flume支持第三方过滤插件调用。

Flume操作示例1

  • 说明
    • 本例子演示Flume通过采集集群内应用(比如网银系统)产生的日志到HDFS上。
  • 数据准备
    • 在集群某一个节点上创建日志目录/tmp/log_test。
    • 该目录作为监控目录mkdir/tmp/log_test。
  • 安装Flume客户端
    • 登录MRSManager集群管理界面,下载Flume客户端。
    • 解压客户端。
    • 安装客户端。
  • 配置Flume Source
  • 配置Flume Channel
  • 配置FlumeSink
  • 将FlumeAgent的配置文件命名为properties.properties,并上传该配置文件。
  • 向监控目录/tmp/log_test生产数据: mv /var/log/log.11 /tmp/log_test
  • 查看数据是否sink到HDFS: hdfs dfs -ls /tmp/flume_avro
  • 此时,log.11已被flume重命名为log.11.COMPLETED,表示已采集成功。

Flume操作示例2

  • 说明
    • 本例子演示Flume实时采集点击流日志到Kafka,用于后续的实时分析处理。
  • 数据准备
    • 在集群某一个节点上创建日志目录/tmp/log_click。
    • 数据采集到Kafka topic_1028中。
  • 配置Flume Source:
  • 配置Flume Channel:
  • 配置Flume Sink:
  • 上传配置文件到Flume。
  • 使用Kafka命令查看采集到Kafkatopic_1028的数据。
相关推荐
大雷神5 小时前
HarmonyOS智慧农业管理应用开发教程--高高种地--第28篇:用户中心与个人资料
华为·harmonyos
雨季6665 小时前
破界与共生:HarmonyOS原生应用生态全景图谱与PC时代三重变局
flutter·华为·harmonyos
一路阳光8516 小时前
华为mate80现在确实没有日日新了,看来华为是对鸿蒙6有信心了
华为·harmonyos
三掌柜6666 小时前
如何从一个开发者成为鸿蒙KOL
华为·harmonyos
爱笑的眼睛116 小时前
学着学着 我就给这个 HarmonyOS 应用增加了些新技术
华为·ai·harmonyos
REDcker6 小时前
鸿蒙系统发展史与纯血鸿蒙详解
华为·harmonyos·鸿蒙·鸿蒙系统
图形达人6 小时前
Siggraph Asia 2025,鸿蒙方舟图形引擎绽放,开创空间化体验元年!
华为·harmonyos
森之鸟6 小时前
uniapp——配置鸿蒙环境,进行真机调试
华为·uni-app·harmonyos
grd46 小时前
HarmonyOS Cordova 混合应用架构设计-Cordova 与 OpenHarmony 混合开发实战
华为·harmonyos
2501_944934736 小时前
工业大数据方向,CDA证书和工业数据工程师证哪个更实用?
大数据