龙空技术网

大数据中常用的中间组件Flume

优悠严选 927

前言:

而今大家对“flume部署”大概比较关心,同学们都需要知道一些“flume部署”的相关内容。那么小编也在网络上网罗了一些关于“flume部署””的相关内容,希望小伙伴们能喜欢,同学们快快来学习一下吧!

Flume

使用中间组件推送数据到HDFS、HBase等存储系统是常见的使用案例。其中Flume是其中的一种,其他的还有KAFKA。

Flume是一个分布式、可靠的和高可用的海量日志采集、集合和传输的系统。它可以定制各类数据发送方,用来收集数据,且Flume也可以对数据进行简单处理和写到各种数据接受方。

Flume以Agent为最小的独立运行单位。一个Agent就是一个JVM。

一个Agent是三个组件构成,分别是Source|Sink|Channel。

Source:负责获取事件到Agent

Channel:它是位于Source与Sink之间的缓冲区,保存通过Source传入到Flume Agent的数据,直到它被Sink移除。

Sink:Sink负责从Agent移走事件并转发到下个Agent。可以是 HDFS、HBASE、Solr等。

现在 Flume的使用率越来越高,它可以继续有效地提供高弹性|容错|可靠和高效的机制,将大量的数据从各种各样的数据源移动到目的地系统,如HDFS|HBase等。

一个很好的Flume拓扑,可以无限期地自运行。它提供了上下文的路由,当连接恢复时,通过提供可靠存储和重新发送消息的能力,能够处理宕机,网络中断问题。

Flume是专门设计用来从大量的源,推送数据到Hadoop生态系统中各种各样的存储系统中去的,例如HDFS|HBASE。

Flume被设计成为一个灵活的分布式系统,可以很容易地扩展,而且是高度可定制的,一个配置正确的Flume Agent和由相互连接的Agent创建的Agent的管道,保证不会丢失数据,提供持久的Channel。

Flume部署的最简单元是Agent。一个Agent可以连接一个或多个其他的Agent。一个Agent也可以从一个或多个Agent接受数据。通过相互连接的多个Flume Agent,一个流作业就建立。

大量的Agent从应用服务器接受数据,然后将数据写入到HDFS等。

Agent的数据流方式:

生产、接受的数据源写入数据到一个或者更多Channel,一个或者多个Sink从Channel读取这些事件,然后推送它们到下一个Agent,或存储系统。

Agent可以被配置成在数据被写入到目的地之前,从管道的一个Agent发送数据到另一个Agent。由于Channel的持久性,可以保证数据不会丢失。

标签: #flume部署