Flume 简介

Flume

是分布式、可靠、可用性好,用于收集、聚合、移动大量数据。

基于流计算的简单灵活框架。

用于在线分析。

优点:

1. 可以和任意集中式存储进行集成

2. 输入数据的速度大于存储速度,flume会进行缓冲

3  flume提供上下文路由(数据流路线)

4. flume中的事务基于channel,提供了两个事务模型(sender、receiver)确保消息可靠发送。

5. 可靠 容错 可伸缩 可管理 可定制化

Hadoop Put命令的缺点:

1. Put一次只能传输一个文件,当文件增大速度大于传输速度,传输就不及时。

2. Put只能传输已写完的数据,不能传输持续写入过程中的数据。

HDFS的缺点

HDFS写入操作完成之前,文件大小是0,所以文件只能一次性整个写入。如果写入过程被中断,已写入的数据会丢失。

Flume agent

---------------------------------------------

1. 描述

在数据生成器运行的节点上运行单独的flume agent来收集数据,推送到hdfs。

2.  Flume Event

事件是flume的传输单元。主要是byte[],可以含有一些header信息。在source和destination之间。

3. Flume Agent

每个agent是一个独立的java进程,从客户端(或agent)接收数据,然后转发到下一个destination(sink | agent)。

agent包含三个组件:

a. source [源头]

从事件生成器接收数据,已event事件的形式传给一个或多个channel。

b. channel [通道]

从source接收Flume agent,作为临时存放地,缓存到buffer中,直到sink将其消费掉。是source和sink之间的桥梁。

channel是事务的,可以和多个source或sink协同。

c. sink [沉槽]

存放数据到hdfs,从channel中消费event,并分发给destination。sink的destination也可以是另一个agent或hdfs。

注意:一个Flume的agent,可以有多个source、channel、sink。

 

 

猜你喜欢

转载自oracle-api.iteye.com/blog/2372782