登录
首页大数据时代什么是flume?它在大数据处理中起到什么作用?
什么是flume?它在大数据处理中起到什么作用?
2020-07-16
收藏

Flume 是 Apache 旗下的一款,开源,可靠性高,扩展性高,管理简单,并且能够支持客户扩展的数据采集系统。 Flume 是使用 JRuby 来构建的,因此依赖于 Java 运行环境。Flume 起初是由 Cloudera 的工程师设计出来,被 用于合并日志数据的系统,后来也逐渐被应用到处理流数据事件。

1.Flume概述

Flume能够支持在日志系统中定制各类数据发送方,用来收集数据;并且,Flume提供对简单处理数据,并写到各种数据接受方(可定制)的功能,其设计的原理同样是基于将数据流(例如日志数据)从各种网站服务器上汇集起来,并存储到HDFS、HBase等集中存储器中。Flume具有的可靠性机制以及故障转移和恢复机制,还具有强大的容错性和容错能力。Flume 使用的是一个简单的可扩展数据模型,允许在线分析应用程序。

2.Flume特点

(1)  Flume是一个分布式、高可靠、高可用的海量日志采集、聚合和传输的系统。

(2)   Flume能够采集文件,socket数据包等各种形式源数据,又能够将采集到的数据输出到HDFS、hbase、hive、kafka等众多外部存储系统中

(3)   对于一般的采集需求,通过对flume的简单配置就能实现

(4) 即使 针对特殊场景 Flume也具备良好的自定义扩展能力,所以,flume适合于大部分的日常数据采集

3.Flume的运行机制

Flume的核心是一个agent,agent对外有两个进行交互的地方,一个是source,负责采集,接受数据的输入,另一个是sink,数据的输出,主要负责将数据发送到外部指定的目的地。在source接收到数据之后,会将数据传送到channel,channel是通道,作为一个数据缓冲区会临时将这些数据存放起来,之后sink会将channel中的数据发送到指定的地方。这里需要注意:只有sink将channel中的数据发送成功之后,channel才会删除临时数据,就是这种机制保证了数据传输的可靠性与安全性。

单个agent采集数据

复杂结构:多级agent之间串联

4.在大数据的业务处理过程中,Flume主要负责数据的采集。

数据分析咨询请扫描二维码

客服在线
立即咨询