主页 > 新闻资讯 > 大数据学习:Flume分布式日志系统简介

大数据学习:Flume分布式日志系统简介

作者:张老师 浏览次数: 2021-02-25 17:55
在企业级的平台系统当中,对于日志的收集和分析,一方面对于运维优化有着相应的作用,另一方面日志数据,作为大数据的一种形式,也蕴含着诸多价值。今天的大数据学习分享,我们就主要来讲讲,Flume分布式日志系统。

Flume出自Cloudera公司,现如今已经是Apache的顶级项目。市面上与Flume相似的日志收集系统还有Facebook Scribe、Apache Chuwka等。但是在大数据平台系统当中,Flume的应用程度还是占据主流市场的。

大数据学习:Flume分布式日志系统简介

Flume OG和Flume NG

提到Flume,也许有人听过两个版本,一个是Flume OG,一个是Flume NG。

Flume初始的发行版本目前被统称为Flume OG(Original Generation),属于Cloudera。

而2011年10月22日,Cloudera完成了Flume-728,对Flume进行了里程碑式的改动:重构核心组件、核心配置及代码架构,重构后的版本统称为Flume NG(Next Generation)。

Flume NG的架构

Flume采用了分层架构,分别为Agent、Collector和Storage。其中,Agent和Collector均由Source和Sink两部分组成,Source是数据来源,Sink是数据去向。

Flume使用了两个组件:Master和Node。Node根据在Master Shell或Web中的动态配置,决定其是作为Agent还是作为Collector。

Agent的作用是将数据源的数据发送给Collector。

Collector的作用是将多个Agent的数据汇总后,加载到Storage中。它的Source和Sink与Agent类似。

Storage是存储系统,可以是一个普通File,也可以是HDFS、Hive、HBase、分布式存储等。

Master负责管理、协调Agent和Collector的配置信息,是Flume集群的控制器。

注:Flume框架对Hadoop和ZooKeeper的依赖只存在于JAR包上,并不要求Flume启动时必须将Hadoop和ZooKeeper服务同时启动。

Flume核心概念

1.Agent:使用JVM运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。

2.Client:生产数据,运行在一个独立的线程。

3.Source:从Client收集数据,传递给Channel。

4.Sink:从Channel收集数据,运行在一个独立线程。

5.Channel:连接sources和sinks,这个有点像一个队列。

6.Events:可以是日志记录、avro对象等。

Flume以agent为最小的独立运行单位。一个agent就是一个JVM。单agent由Source、Sink和Channel三大组件构成。

值得注意的是,Flume提供了大量内置的Source、Channel和Sink类型。不同类型的Source,Channel和Sink可以自由组合。组合方式基于用户设置的配置文件,非常灵活。

比如:Channel可以把事件暂存在内存里,也可以持久化到本地硬盘上。Sink可以把日志写入HDFS,HBase,甚至是另外一个Source等等。Flume支持用户建立多级流,也就是说,多个agent可以协同工作,并且支持Fan-in、Fan-out、Contextual Routing、Backup Routes。

关于大数据学习,Flume分布式日志系统,以上就为大家做了简单的介绍了。Flume组件在大数据技术生态当中占据重要位置,因而在大数据学习当中,也需要给以足够的重视。成都加米谷大数据,专业大数据培训机构,大数据开发、数据分析与挖掘,零基础班本月正在招生中,课程大纲及学习视频,可联系获取!
热点排行
推荐文章
立即申请>>