Flume入门

本文详细介绍了Flume作为一款分布式、可靠的日志采集系统,其核心组件包括Source、Channel和Sink的工作原理。通过地铁类比,深入浅出地解释了Flume如何高效地收集、聚合和传输大量日志数据。

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

Flume简介

    Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. It has a simple and flexible architecture based on streaming data flows. It is robust and fault tolerant with tunable reliability mechanisms and many failover and recovery mechanisms. It uses a simple extensible data model that allows for online analytic application.

    简单说,Flume就是一个分布式采集日志文件的服务

个人理解

    每一个技术(工具)诞生都是为了解决一个痛点。Flume的诞生是为了实现数据的自动化导入。而且Flume拥有分布式,可靠,对HDFS良好支持的特性,所以Flume得到广泛的使用。Flume的作用与地铁类似,可以类比地铁,来了解Flume各核心组件的作用。

Flume核心组件

  1. Sourse 数据源
  2. Channel 频道(管道)
  3. Sink 数据输出源

安装使用

tar -zxvf apache-flume-1.9.0-bin.tar.gz flume
  • 4.编写配置文件
#example.conf(flume目录下存在)

## 定义Agent的3个组件变量
a1.sources = r1
a1.sinks = k1
a1.channels = c1

## 设置Source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

## 设置Sink
a1.sinks.k1.type = logger

## 设置Channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

## 连接3个组件
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
  • 5.启动 Agent 采集数据
/opt/module/flume/bin/flume-ng agent --conf conf --conf-file example.conf --name a1
  • 6.对指定端口发送数据
#连接该端口,并发送数据
telnet localhost 44444

如果能出现这些Event的日志打印,就表示这个入门小Demo测试成功啦
Flume控制台打印Event日志

Flume 组件间关系

比喻 Flume 的数据抽取就像是地铁

  • 1.总体上,Flume是在管道中传输数据。而地铁在管道中运输人
  • 2.Flume-Source 作为数据源,也就是地铁的入站口,有人(数据)输入;
  • 3.Flume-Channel 作为管道,有运输,缓冲的作用。地铁的的隧道也有缓冲的功能——如果前面的地铁还没下完人,下一班地铁就要隧道中临时停车,直到上班地铁的人下车完毕;
  • 4.Flume-Sink 作为输出源,在地铁上也有下车站点;
Flume地铁
Source入站口
Channel隧道
Sink出站口

如果喜欢这篇文章,帮忙点个赞哦,谢谢!
👇👇👇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值