自用华为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的数据。
相关推荐
autumn20052 小时前
Flutter 框架跨平台鸿蒙开发 - 虚拟纪念馆
flutter·华为·harmonyos
2301_822703202 小时前
渐变壁纸生成:基于鸿蒙Flutter的跨平台壁纸创建工具
flutter·华为·harmonyos·鸿蒙
人间打气筒(Ada)3 小时前
「码动四季·开源同行」HarmonyOS应用开发:常见组件
华为·开源·harmonyos·组件·布局·鸿蒙开发
Me4神秘3 小时前
国家级互联网骨干直联点及容量、互联网交换中心
大数据·信息与通信
三声三视3 小时前
ArkTS 自定义组件完全指南:@Builder、@Extend、@Styles 实战解析
华为·harmonyos
zandy10114 小时前
全链路可控+极致性能,衡石HENGSHI CLI重新定义企业级BI工具的AI协作能力
大数据·人工智能·ai analytics·ai native·agent-first
Utopia^6 小时前
Flutter 框架跨平台鸿蒙开发 - 旅行预算管家
flutter·华为·harmonyos
李李李勃谦6 小时前
Flutter 框架跨平台鸿蒙开发 - 星空识别助手
flutter·华为·harmonyos
李李李勃谦6 小时前
Flutter 框架跨平台鸿蒙开发 - 本地生活服务预约
flutter·华为·生活·harmonyos
果粒蹬i6 小时前
Elasticsearch 单机部署实测:安装流程、常见坑点与远程访问配置
大数据·elasticsearch·搜索引擎