大数据(4a)Flume原理、安装、使用

0、先介绍一个Linux监控文件内容功能

Linux的tail命令可以监控文件内容变化,man tail可查看命令详情

我们开两个窗口,一边使用tail -F b.txt,另一边往文件b.txt追加内容

可以看到,追加的内容被实时打印出来了

1、Flume简介

  • 海量日志 采集、聚合、传输 的系统
  • 基于流式架构
  • 入门功能:实时监控【单个追加文件、目录下多个新文件、目录下的多个追加文件】
  • 官方教学:http://flume.apache.org/FlumeUserGuide.html
  • 下载地址:http://archive.apache.org/dist/flume/

官方架构图

主要概念 说明 备注
Agent 是一个JVM进程 主要包括【Source、Channel、Sink】
Source 接收数据 例如:监控文件
Channel 缓冲区 可以是:内存 or 磁盘
Sink 输出数据 例如:写到HDFS
Event 数据传输的基本单元 组成:Header(k=v)Body(byte array)

2、安装

本文环境 版本 说明
Java 1.8 预先装好
Hadoop 3.1.3 预先装好
Flume 1.9 待安装,路径:/opt/flume
  1. 环境变量
vi /etc/profile.d/custom.sh
# Flume
export FLUME_HOME=/opt/flume
export PATH=$PATH:$FLUME_HOME/bin
source /etc/profile.d/custom.sh
  1. 解压、改名
tar -zxf apache-flume-1.9.0-bin.tar.gz -C /opt/
cd /opt
mv apache-flume-1.9.0-bin flume
  1. 解决和Hadoop的jar冲突(Hadoop3.1.3的guava版本是27)
cd $FLUME_HOME/lib
mv guava-11.0.2.jar guava-11.0.2.jar.bak
  1. 日志配置(可选)
vi $FLUME_HOME/conf/log4j.properties

3、简单使用

常用语法:flume-ng <command> [options] ...
常用示例:flume-ng agent -n anent名 -c 配置文件目录 -f 配置文件

大类 名称 说明
命令 agent 运行一个Flume agent
命令 help 显示帮助
命令 version 显示版本
全局选项 --conf <conf>
-c <conf>
使用<conf>目录里的配置
agent选项 --name <name>-n <name> agent名(必须项)
agent选项 --conf-file <file>
-f <file>
指定配置文件

3.1、监控单个追加文件

1 编写Flume代码

cd /root
在没有 Hadoop 环境下,安装和配置大数据实时处理工具 Flume 的步骤如下: ### 环境准备 需要 Java 8 或更高版本以及 Git 。Java 是 Flume 运行的基础环境,Git 可用于获取 Flume 的相关资源 [^2]。 ### 下载 Flume 可以从 Apache Flume 的官方网站下载适合的版本。下载完成后,将压缩包解压到指定目录。例如,使用以下命令: ```bash wget <Flume下载链接> tar -zxvf apache-flume-<版本号>-bin.tar.gz -C /opt/flume ``` ### 配置 Flume 进入 Flume安装目录,找到 `conf` 文件夹,主要配置 `flume-env.sh` 和编写自定义的配置文件。 #### 配置 `flume-env.sh` 复制 `flume-env.sh.template` 为 `flume-env.sh`,并编辑该文件,设置 Java 环境变量: ```bash cp flume-env.sh.template flume-env.sh vi flume-env.sh ``` 在文件中添加或修改以下内容: ```bash export JAVA_HOME=/path/to/your/java ``` #### 编写自定义配置文件 在 `conf` 目录下创建一个新的配置文件,例如 `flume.conf`。以下是一个简单的示例,用于从本地文件收集数据并输出到控制台: ```properties # 定义组件名称 agent.sources = r1 agent.sinks = k1 agent.channels = c1 # 配置 source agent.sources.r1.type = exec agent.sources.r1.command = tail -F /var/log/syslog # 配置 sink agent.sinks.k1.type = logger # 配置 channel agent.channels.c1.type = memory agent.channels.c1.capacity = 1000 agent.channels.c1.transactionCapacity = 100 # 绑定 source 和 sink 到 channel agent.sources.r1.channels = c1 agent.sinks.k1.channel = c1 ``` ### 启动 Flume 使用以下命令启动 Flume 代理: ```bash bin/flume-ng agent --conf conf --conf-file conf/flume.conf --name agent -Dflume.root.logger=INFO,console ``` 其中,`--conf` 指定配置文件所在目录,`--conf-file` 指定具体的配置文件,`--name` 指定代理名称。 ### 验证安装与配置 启动后,查看控制台输出,如果能看到从指定文件收集的数据输出,说明 Flume 安装和配置成功。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值