使用中间组件推送数据到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的持久性,可以保证数据不会丢失.
本篇文章是有青岛达内培训为您呈现,希望给您带来更多更好的文章
更多青岛IT培训相关资讯,请扫描下方二维码