Flume安装和基本操作

本文详细介绍了Apache Flume的组件分析,包括Source、Sink和Channel,以及如何在Linux环境中进行安装配置。通过实例展示了如何创建Flume配置文件,启动Flume Agent,并使用netcat发送数据进行测试。此外,还提供了数据丢失场景下的MemoryChannel和FileChannel选择建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Flume简介

什么是Flume?

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。
在这里插入图片描述
Flume最主要作用:实时读取服务器本地磁盘的数据,将数据写入到HDFS中

Flume的基础架构

在这里插入图片描述


组件分析

Agent

Agent是一个JVM进程,它以事件的形式将数据从源头送至目的。
Agent主要有3个部分组成,Source、Channel、Sink。

Source

Source是负责接收数据到Flume Agent的组件。Source组件可以处理各种类型、各种格式的日志数据,包括avro、>thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy。

Sink

Sink不断地轮询Channel中的事件且批量地移除它们,并将这些事件批量写入到存储或索引系统,或者被发送到另一个Flume Agent。Sink组件目的地包括hdfs、logger、avro、thrift、ipc、file、HBase、solr、自定义。

Channel

Channel是位于Source和Sink之间的缓冲区。因此,Channel允许Source和Sink运作在不同的速率上。Channel是线程安全的,可以同时处理几个Source的写入操作和几个Sink的读取操作。
Flume自带两种Channel:Memory Channel和File Channel。
Memory Channel: 是内存中的队列。Memory Channel在不需要关心数据丢失的情景下适用。如果需要关心数据丢失,那么Memory Channel就不应该使用,因为程序死亡、机器宕机或者重启都会导致数据丢失。
File Channe: l将所有事件写到磁盘。因此在程序关闭或机器宕机的情况下不会丢失数据。

二、安装配置

  1. 上传安装包到/opt/soft/目录下
  2. 解压安装包到/opt/module/目录下
    tar -zvxf apache-flume-1.7.0-bin.tar.gz -C /opt/module/
    
  3. 修改名字为flume
    mv apache-flume-1.7.0-bin flume
  4. 配置环境变量
    编辑etc/profile或者~/.bash_profile文件中
    #flume添加一下内容
    export FLUME_HOME=/opt/module/flume
    export PATH=$PATH:$FLUME_HOME/bin
    
  5. 在flume安装目录下创建目录jobs
    mkdir jobs
  6. 验证是否安装成功
    flume-ng version
    在这里插入图片描述
  7. 安装netcat
    yum -y install nc

三、Flume入门基本操作

  1. 创建配置文件,在jobs目录下创建配置文件flume-test.conf
    添加如下内容:

    #Name the components on this agent
    a1.sources = r1
    a1.sinks = k1
    a1.channels = c1
    
    #Describe/configue the source
    a1.sources.r1.type = netcat
    a1.sources.r1.bind = localhost
    a1.sources.r1.port = 44444
    
    a1.sinks.k1.type=logger
    
    #use a channel which buffers events in memory
    a1.channels.c1.type = memory
    
    #Bind the source and sink to the channel
    a1.sources.r1.channels = c1
    a1.sinks.k1.channel = c1
    
  2. 启动flume

    bin/flume-ng agent -n a1 -c conf/ -f job/flume-test.conf -Dflume.root.logger=INFO,console
    
  3. 启动nc
    nc localhost 44444
    注意:端口号要与flume配置文件一致

  4. 在nc输入数据
    在这里插入图片描述

  5. 在flume端查看结果
    在这里插入图片描述


你的一键三连就我继续写作的动力!
Flume是一款由LinkedIn开发的数据收集系统,它主要用于从各种数据源高效、可靠地收集大量日志数据,并将其传输到诸如Hadoop HDFS、Kafka等数据存储系统。以下是Flume在Linux上安装基本配置的基本步骤: 1. **安装前提**: 确保你的Linux系统已安装了Java Development Kit (JDK) Git。 2. **添加Apache Maven仓库**: Flume依赖于Maven,所以首先需要将Maven的仓库加入到系统的`~/.m2/settings.xml`文件中: ```bash vi ~/.m2/settings.xml ``` 添加以下行: ``` <mirrors> <mirror> <id>apache-repo</id> <url>http://mirrors.aliyun.com/apache/maven</url> <mirrorOf>*</mirrorOf> </mirror> </mirrors> ``` 3. **安装Flume**: 使用Maven下载并解压Flume源码: ```bash git clone https://github.com/apache/flume.git cd flume mvn clean install -DskipTests ``` 4. **创建配置目录**: 创建一个用于存放Flume配置文件的目录,例如`/etc/flume/conf`: 5. **编写Flume配置**: 编辑`flume-conf-sample.properties`文件(或复制到新的配置文件),修改配置以满足你的需求,比如设置source(数据源)、channel(缓冲区)sink(目的地)。以下是一个简单示例: ```properties agent.sources = source1 agent.sinks = sink1 agent.channels = channel1 # 源配置 agent.sources.source1.type = netcat agent.sources.source1.host = localhost agent.sources.source1.port = 4440 # 队列配置 agent.channels.channel1.type = memory # 卫星配置 agent.sinks.sink1.type = hdfs agent.sinks.sink1.hdfs.path = /path/to/hdfs/directory agent.sinks.sink1.channel = channel1 ``` 6. **启动Flume**: 将配置文件名称改为你刚刚创建的配置文件名(如`flume.conf`),然后通过以下命令启动Flume: ```bash bin/flume-ng agent --conf-file=/etc/flume/conf/flume.conf --name myAgent --daemon ``` 7. **监控调试**: 可以使用`bin/flume-ng monitor`命令查看实时日志收集情况,或者检查日志文件(通常是`logs`目录下的log文件)来诊断问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

似懂非dong

你的肯定使我加倍努力

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

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

打赏作者

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

抵扣说明:

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

余额充值