flume--为搬砖而生,日志传输的一把好手

(一)flume的产生

为什么会有flume

随着互联网的发展,人们对网络日志产生的信息也越来越重视。不仅如此,我们的服务器,比如Nginx,每天都会产生大量的日志。我们要将这些日志收集到指定的地方,比如hdfs平台,进行分析。但是大量的日志产生的位置比较分散,可能来自于Tomcat、Nginx、甚至是数据库等等,而且存储的目的地也不一样,这就导致了数据采集的复杂性。然鹅最关键的问题是,如果在采集的过程中,出现问题了该怎么办?比如我们要把日志收集到hdfs平台上进行分析,我们可以通过hdfs shell的方式,但是我们无法对日志采集的状况进行监控。针对以上种种问题,flume就诞生了,因此看到这里小伙伴也能猜到flume是干什么的了。

flume是什么

关于flume是什么?官网给出了定义,我们来看一下。因为flume是Apache的一个顶级项目,所以官网就是flume.apache.org

1

flume是一个分布式、高可靠、高可用的服务,用于高效地收集、聚合、移动大量的数据集。flume具有一个简单、灵活并基于数据流的架构,它具备可调节的可靠机制和许多故障转移以及恢复机制,并具有很强的健壮性和容错性。通过使用一种简单可扩展的数据模型来提供应用程序的在线分析。

我们从图中,可以看到一个长方形,里面围住的部分就是flume的一个agent。我们通过flume移动数据就相当于在写一个配置文件。source:源。表示我们要从哪里收集,比如这里来自于web服务器。sink:下沉。表示我们要把数据沉到什么地方去,这里是hdfs。那么中间还有一个channel是干什么的呢?channel:管道,我们不会把刚收集到的日志立刻sink到hdfs上面,那样效率太慢,而是会先存到channel里面,这个channel就是消息队列,一般是kafka,当管道满了,然后再把管道里面的数据一次性sink的目的地,这里是hdfs。

因此通俗一点的说:

flume就是一个日志采集工具,或者理解为一个搬运工,将日志从一个地方搬到另一个地方去。特征是:具备高可用、高可靠、分布式处理模式。里面定制了很多的source和sink,支持我们从不同的源端读取日志文件,然后sink到不同的地方去。

flume的特征

  • flume可以高效率地从多个服务器中收集日志并存储到hdfs/hbase中

    扫描二维码关注公众号,回复: 6931559 查看本文章
  • 除了日志信息,flume也可以用来接入收集规模宏大的社交网络节点事件数据,比如Facebook、Twitter等等

  • 支持各种不同数据源,并能够输送到不同的地方

  • 支持多路径,多管道输入,多管道输出,上下文路由等等

    什么意思呢?意思就是我们sink的时候,也可以作为下一个agent的source,不一定要是hdfs等平台,并且多个sink还可以到同一个source里面。

    2

    3

    同理,一个source也可以到多个channel,然后sink到多个地方

    4

  • 可以水平扩展

flume的应用场景

flume其实还可以有其他的功能,比如数据的处理,但是在大数据实际应用中,flume基本上只用于日志收集工作,根据不同的业务场景,编写不同的配置文件。

(二)flume的client

flume的客户端

什么是flume的客户端呢?实际上,部署flume的机器就可以称之为一个客户端。部署flume,是不是需要一些环境呢?

5

根据官网的要求,至少要满足以下几点

  • 1.jdk1.8或更高,大数据的这些组件都和java脱不开关系
  • 2.内存。因为flume是基于流式的,因此内存也是必须的
  • 3.磁盘空间,我们不会把数据一直保存到内存里面,最终要刷到磁盘上,因此磁盘空间也是必须的。
  • 4.目录权限,你要往一个目录里面写文件的话,总要有写或者读的权限吧

感觉2、3、4都是废话,这不是显然的吗?

(三)flume的source

我们之前说过,一个agent就相当于一个配置文件,里面有三剑客,分别是source、channel、sink。通过编写配置文件,配置source、channel、sink,来将数据从一端传输到另一端。
我们来看看source。

6

source就是我们的源端,从不同的数据源读取日志信息放到channel里,然后sink取出channel里面的日志信息到其他的地方,比如hdfs、hbase等等。

因此flume的架构很好理解,就这三个组成部分。既然flume的source支持不同的数据源,那么我们就来看看,它都支持哪些不同的数据源呢?

猜你喜欢

转载自www.cnblogs.com/traditional/p/11289126.html
今日推荐