【大数据基础】Flume原理是什么?

2020-10-20 11:26发布

4条回答
芒果
2楼-- · 2020-10-20 15:41

Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。Flume可以采集文件、socket数据包等各种形式源数据,又可以将采集到的数据输出到HDFS、hbase、hive、kafka等众多外部存储系统中。一般的采集需求,通过对flume的简单配置即可实现。Flume针对特殊场景也具备良好的自定义扩展能力,所以flume可以适用于大部分的日常数据采集场景。Flume的运行原理是:Flume的核心角色为Agent,Flume分布式系统常常是由很多的Agent连接而形成的。Agent内部有三个组件,一是Source采集源,用于跟数据源对接,获取数据。二是Channel通道,Agent内部的数据传输通道,用于从source将数据传递到Sink。三是Sink目标地,采集数据的传送目的地,用于往下一级agent传递数据或者往最终存储系统传递数据。采集模式分为单级和多级采集模式。

Sophia
3楼-- · 2020-10-20 16:52

Flume的事务机制(类似数据库的事务机制):Flume使用两个独立的事务分别负责从Soucrce到Channel,以及从Channel到Sink的事件传递。比如spooling directory source 为文件的每一行创建一个事件,一旦事务中所有的事件全部传递到Channel且提交成功,那么Soucrce就将该文件标记为完成。同理,事务以类似的方式处理从Channel到Sink的传递过程,如果因为某种原因使得事件无法记录,那么事务将会回滚。且所有的事件都会保持到Channel中,等待重新传递。


爱梦
4楼-- · 2020-10-21 09:31

Flume 是 Cloudera 提供的日志收集系统,具有分布式、高可靠、高可用性等特点,对海量日志采集、聚合和传输,Flume 支持在日志系统中定制各类数据发送方,同时,Flume提供对数据进行简单处理,并写到各种数据接受方的能力。

Flume 使用 java 编写,其需要运行在 Java1.6 或更高版本之上。

  • 官方网站:http://flume.apache.org/

  • 用户文档:http://flume.apache.org/FlumeUserGuide.html

  • 开发文档:http://flume.apache.org/FlumeDeveloperGuide.html


霸气的名字 - 喜欢晴天
5楼-- · 2020-10-22 18:42

flume 是系统, 是高可用的,高可靠的,分布式的海量数据日志采集,聚合和传输的系统

总结就是 两个特点。高可用,高可靠 三个功能:数据的采集,聚合和传输.。

体系架构:

F的数据流是由事件(event)贯穿始终。事件是F的基本数据单位。事件携带着这事件所有数据内容信息和数据头信息。这些事件(event) 由Agent外部的Source 生成。当Source捕获事件后会进行特定格式化。然后Source 会把事件推入到单个或者多个channel中,可以把channel看做是缓冲区,起到缓冲数据的作用,这channel将保存事件直到sink 处理完该事件。sink 负责持久化日志或者把事件推向另一个source中

F以agent 为最小的独立运行单位。 一个agent 就是一个jvm d单agent 由Source ,sink,channel 三大组件构成