自用华为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的数据。
相关推荐
大树886 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
程序猿追6 小时前
那个右下角的小数字怎么“卡”住我打字——我用 HarmonyOS 自己写了一个字数限制输入框
pytorch·华为·harmonyos
古德new6 小时前
鸿蒙PC使用electron迁移:Joplin Electron 桌面适配全记录
华为·electron·harmonyos
大志哥1236 小时前
ES和Logstash日志链路系统上线后遭遇切片爆炸(解决)
大数据·elasticsearch
世人万千丶7 小时前
桌面便签小应用 - HarmonyOS ArkUI 开发实战-TextArea与Flex布局-PC版本
华为·harmonyos·鸿蒙·鸿蒙系统
慧海灵舟7 小时前
AGenUI 鸿蒙端实战踩坑录:从 Column 布局消失到异步组件宽度为 0
华为·harmonyos
yuegu7777 小时前
HarmonyOS应用<节气通>开发第33篇:状态管理实战
华为·harmonyos
果丁智能8 小时前
物联网智能锁赋能集中式住宿:身份核验与远程权限管控的全链路技术实践
大数据·人工智能·物联网·智能家居
YM52e8 小时前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
阿捏利8 小时前
系列总览-鸿蒙科普系列完全指南
华为·harmonyos