在VMWare上搭建Flume集群

文章目录

  • [1. 实战概述](#1. 实战概述)
  • [2. 实战步骤](#2. 实战步骤)
    • [2.1 下载Flume安装包](#2.1 下载Flume安装包)
    • [2.2 在master主节点上安装配置Flume](#2.2 在master主节点上安装配置Flume)
      • [2.2.1 上传Flume安装包到master指定目录](#2.2.1 上传Flume安装包到master指定目录)
      • [2.2.2 将Flume安装包解压缩到指定目录](#2.2.2 将Flume安装包解压缩到指定目录)
      • [2.2.3 给Flume配置环境变量](#2.2.3 给Flume配置环境变量)
      • [2.2.4 编辑自定义Agent配置文件](#2.2.4 编辑自定义Agent配置文件)
    • [2.3 在slave1从节点上安装配置Flume](#2.3 在slave1从节点上安装配置Flume)
      • [2.3.1 从master主节点分发Flume到slave1从节点](#2.3.1 从master主节点分发Flume到slave1从节点)
      • [2.3.2 从master主节点分发环境配置文件到slave1从节点](#2.3.2 从master主节点分发环境配置文件到slave1从节点)
    • [2.4 在slave2从节点上安装配置Flume](#2.4 在slave2从节点上安装配置Flume)
      • [2.4.1 从master主节点分发Flume到slave2从节点](#2.4.1 从master主节点分发Flume到slave2从节点)
      • [2.4.2 从master主节点分发环境配置文件到slave2从节点](#2.4.2 从master主节点分发环境配置文件到slave2从节点)
    • [2.5 测试Flume集群监视日志变化](#2.5 测试Flume集群监视日志变化)
      • [2.5.1 准备测试日志文件](#2.5.1 准备测试日志文件)
      • [2.5.2 启动 Flume Agent](#2.5.2 启动 Flume Agent)
      • [2.5.3 模拟日志写入(另开终端)](#2.5.3 模拟日志写入(另开终端))
      • [2.5.4 控制台查看新事件](#2.5.4 控制台查看新事件)
  • [3. 实战总结](#3. 实战总结)

1. 实战概述

  • 本次实战部署了 Apache Flume 1.11.0 分布式日志采集系统,在 master、slave1 和 slave2 三节点完成安装与环境配置,并通过自定义 Agent 配置实现对本地日志文件的实时监听与控制台输出,验证了 Flume 数据采集流程的正确性与稳定性,为后续对接 Kafka 或 HDFS 奠定基础。

2. 实战步骤

2.1 下载Flume安装包

2.2 在master主节点上安装配置Flume

2.2.1 上传Flume安装包到master指定目录

  • 进入/opt目录,上传Flume安装包

  • 执行命令:ll apache-flume-1.11.0-bin.tar.gz

2.2.2 将Flume安装包解压缩到指定目录

  • 执行命令:tar -zxvf apache-flume-1.11.0-bin.tar.gz -C /usr/local
  • 执行命令:ll /usr/local/apache-flume-1.11.0-bin

2.2.3 给Flume配置环境变量

  • 执行命令:vim /etc/profile
  • 执行命令:source /etc/profile,让配置生效

2.2.4 编辑自定义Agent配置文件

  • 执行命令:cd $FLUME_HOME/conf,进入Flume配置目录

  • 执行命令:vim test.conf

    shell 复制代码
    # 定义 agent 名称
    a1.sources = r1
    a1.channels = c1
    a1.sinks = k1
    
    # 配置 source(监听文件)
    a1.sources.r1.type = exec
    a1.sources.r1.command = tail -F /var/log/test.log
    
    # 配置 channel(内存缓冲)
    a1.channels.c1.type = memory
    a1.channels.c1.capacity = 1000
    a1.channels.c1.transactionCapacity = 100
    
    # 配置 sink(输出到控制台)
    a1.sinks.k1.type = logger
    
    # 绑定 source 和 sink 到 channel
    a1.sources.r1.channels = c1
    a1.sinks.k1.channel = c1
  • 配置说明 :该配置定义了一个 Flume Agent,使用 exec 源实时监听 /var/log/test.log 文件新增内容,通过内存通道暂存数据,最终由 logger Sink 将事件输出到控制台,适用于日志采集与调试验证。

2.3 在slave1从节点上安装配置Flume

2.3.1 从master主节点分发Flume到slave1从节点

  • 执行命令:scp -r $FLUME_HOME root@slave1:$FLUME_HOME
  • 在slave1从节点上执行命令:ll /usr/local/apache-flume-1.11.0-bin

2.3.2 从master主节点分发环境配置文件到slave1从节点

  • 执行命令:scp /etc/profile root@slave1:/etc/profile
  • 在slave1从节点上执行命令:source /etc/profile,让配置生效

2.4 在slave2从节点上安装配置Flume

2.4.1 从master主节点分发Flume到slave2从节点

  • 执行命令:scp -r $FLUME_HOME root@slave2:$FLUME_HOME

  • 在slave2从节点上执行命令:ll /usr/local/apache-flume-1.11.0-bin

2.4.2 从master主节点分发环境配置文件到slave2从节点

  • 执行命令:scp /etc/profile root@slave2:/etc/profile

  • 在slave2从节点上执行命令:source /etc/profile,让配置生效

2.5 测试Flume集群监视日志变化

2.5.1 准备测试日志文件

  • 在master主节点上执行命令:mkdir -p /var/log
  • 执行命令:echo "Hello Flume~" > /var/log/test.log

2.5.2 启动 Flume Agent

  • 在master主节点上执行命令

    shell 复制代码
    flume-ng agent \
      --conf $FLUME_HOME/conf \
      --conf-file $FLUME_HOME/conf/test.conf \
      --name a1 \
      -Dflume.root.logger=INFO,console


  • 结果说明 :Flume Agent 成功启动并开始监听 /var/log/test.log 文件,Source 通过 tail -F 实时读取日志内容,首次捕获到事件 "Hello Flume~" 并由 Logger Sink 输出原始字节流,表明数据采集流程正常,Agent 已进入稳定运行状态。

2.5.3 模拟日志写入(另开终端)

  • 另开一个master终端

  • 执行命令:echo "I Love You~" >> /var/log/test.log

2.5.4 控制台查看新事件

  • 切换到原来的master终端
  • 结果说明 :Flume 成功捕获新增日志事件,Source 实时监听 /var/log/test.log 文件变化,将内容"I love You~" 通过内存 Channel 传输至 Logger Sink,并在控制台输出原始字节流,验证了数据采集与传输流程正常。

3. 实战总结

  • 本次实战成功完成了 Apache Flume 1.11.0 在三节点集群(master、slave1、slave2)上的部署与配置。通过统一安装目录、配置环境变量并分发配置文件,确保了各节点环境一致性。在 master 节点上编写并测试了基于 exec Source、memory Channel 和 logger Sink 的 Agent 配置,成功实现对 /var/log/test.log 文件的实时监控与事件输出。通过追加日志内容验证了 Flume 的动态采集能力,控制台准确打印新增事件,证明数据流通道畅通。整个过程体现了 Flume 轻量、灵活、高可靠的数据采集特性,为后续构建日志汇聚至 Kafka 或 HDFS 的大数据流水线打下坚实基础。
相关推荐
雪碧聊技术15 小时前
linux(centos7)部署springboot项目
centos7·jdk安装·阿里云linux服务器·springboot项目部署
程序猿小白日记8 天前
云计算时代的编程语言演变:如何适应不断变化的技术需求
flume
2501_941822758 天前
云原生时代企业架构转型趋势与技术革新探索解析及未来数字化竞争力构建路径深度研究方向展
flume
励志成为糕手9 天前
Flume架构深度解析:构建高可用大数据采集系统
大数据·架构·flume·日志·大数据采集
2501_941800889 天前
人工智能与机器学习:重塑未来工作与生活
flume
2501_941807269 天前
区块链在数字版权保护中的应用与挑战:破解版权侵权的技术革命
flume
2501_9411444211 天前
5G与物联网的融合:迈向万物互联的未来
flume
二进制_博客11 天前
flume抽取kafka数据到kafka,数据无法从topicA抽取到topicB
大数据·kafka·flume
少废话h11 天前
Flume Kafka源与汇的topic覆盖问题解决
java·linux·kafka·flume
2501_9414043112 天前
数字化转型中的云计算与大数据:重塑商业未来
flume