大数据之Flume详解

1 Flume概述

1.1 Flume定义

Flume是Cloudera提供的一个高可用的、高可靠的、分布式的海量日志采集,聚盒和传输的系统,Flume基于流式架构,灵活简单。

1.2 为什么选用Flume?

在这里插入图片描述

1.2.1 基本概念

1.Event

  • 在Flume中,每一条日志都是一个Event,即Flume会将收集到的每一条日志封装成一个Event对象。
  • Event本质上是一个json串,即Flume会将收集到的日志封装成一个json。
  • Event固定的包含2个部分:headers和body。
    2.Agent:是Flume的基本组成结构,固定的包含3个部分。
  • Source:从数据源采集数据
  • Channel:临时存储数据
  • Sink:将数据写出到目的地

Flume官网基础架构示意图:
在这里插入图片描述

1.3 基本组件

1.3.1 Flume Sources

source组件是专门用来收集数据的,可以处理各种类型、各种格式的日志数据;
其中包括有:Avro Source、Thrift Source、Exec Source、Spooling Directory Source、NetCat、Kafka Source、Sequence generator、Syslog Source、HTTP Source、Legacy Source等等。(加粗的字体表示常见的Source)

1.3.2 Flume Channels

source组件吧数据收集过来之后,临时存放在Channel中,即Channel组件是agent中专门用来存放临时数据的——对采集到的数据进行简单的缓存。

  • Memory channel:内存通道,将数据临时存储在内存(阻塞式队列)中,因此读写速度相对较快,但是不稳定。适用于吞吐量较高的场景。如果不指定,那么在内存中最多能够同时存储100条数据。
  • File Channel:文件通道,将数据临时存储在磁盘上,因此读写速度相对比较慢但是可靠,适用于可靠性的场景。
  • JDBC Channel:将数据临时存储在数据库中,到目前为止,只支持Derby数据库(微型数据库)
  • Spillable Memory Channel:内存溢出通道,会先将数据放到内存中,如果内存中存不下,不会阻塞,而是再将数据往磁盘上写(目前还在试验阶段)。

1.3.3 Flume Sinks

sink组件是用于把数据发送到目的地的组件。目的地包括HDFS Sink、Logger Sink、Avro Sink

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值