Flume----33

在具体介绍本文内容之前,先给大家看一下Hadoop业务的整体开发流程:

从Hadoop的业务开发流程图中可以看出,在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也是不可避免的一步,从而引出主角—Flume 

首先我们介绍Flume(日志收集系统)


flume是分布式的日志收集系统,它将各个服务器中的数据收集起来并送到指定的地方去,比如说送到图中的HDFS,简单来说flume就是收集日志的。 

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

数据处理:

Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力 。Flume提供了从console(控制台)、RPC(Thrift-RPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系统),支持TCP和UDP等2种模式),exec(命令执行)等数据源上收集数据的能力

Flume优势:

1. Flume可以将应用产生的数据存储到任何集中存储器中,比如HDFS,HBase
2. 当收集数据的速度超过将写入数据的时候,也就是当收集信息遇到峰值时,这时候收集的信息非常大,甚至超过了系统的写入数据能力,这时候,Flume会在数据生产者和数据收容器间做出调整,保证其能够在两者之间提供平稳的数据.
3. 提供上下文路由特征
4. Flume的管道是基于事务,保证了数据在传送和接收时的一致性.
5. Flume是可靠的,容错性高的,可升级的,易管理的,并且可定制的。

结构:

Agent主要由:source,channel,sink三个组件组成.

Source:
从数据发生器接收数据,并将接收的数据以Flume的event格式传递给一个或者多个通道channal,Flume提供多种数据接收的方式,比如Avro,Thrift,twitter1%等
Channel:
channel是一种短暂的存储容器,它将从source处接收到的event格式的数据缓存起来,直到它们被sinks消费掉,它在source和sink间起着一共桥梁的作用,channal是一个完整的事务,这一点保证了数据在收发的时候的一致性. 并且它可以和任意数量的source和sink链接. 支持的类型有: JDBC channel , File System channel , Memort channel等.
sink:
sink将数据存储到集中存储器比如Hbase和HDFS,它从channals消费数据(events)并将其传递给目标地. 目标地可能是另一个sink,也可能HDFS,HBase.

现在我们来安装Flume:

Flume版本: apache-flume-1.8.0-bin.tar.gz

下载完成后通过xftp传到Linux下的opt里,然后解压文件

tar  -zxvf  apache-flume-1.8.0-bin.tar.gz


解压完成后,我们需要在Flume的conf下创建新文件 a1.conf 并进行编辑:


我们在进行编写的时候注意:主机名换成我们自己的,我的端口号是22,但我这里写的是44444,我们尽量写4位数以上的。

上图所示的命令后是有注释的,最好不要在后面跟注释,不然会报错。


编辑完a1.conf后,我们启动agent,这个命令是需要回到flume-bin目录下运行,不然会报错

命令是:./bin/flume-ng agent -c conf -f conf/a1.conf -n a1 -Dflume.root.logger=INFO,console

我这里文件名是a1.conf,所以命令里是a1,根据自己文件名所写。


我们输入启动命令后,单独新建一个没有连接虚拟机的窗口。并给Flume发送事件,telnet python5 44444

输完命令后,到了如下图这里挺住后,我们输入hellow  如果返回ok,并在启动agent窗口监听到hellow,就

说明我们这里配置成功。我们现在已经可以监听网络了。

注:如果长时间不操作,自动断开。


还可以监听文件和目录:

我们现在进行监控文件的操作。

首先,我们在hadoop的根目录下创建一个测试文件a1.test


我们来修改我们刚才的a1.conf文件;也可以复制一份,但是里面的所有和文件名不能是a1.


其实,我们发现这个文件主要是改动了source里面的参数,监听的值换成了exec和监听的主机名换成了我们刚刚创建的那个测试文件的路径了。

然后我们重新启动我们的agent   命名还是刚刚那个特别长的。

这是我们在新的窗口(已连接hadoop)给测试文件里添加内容,但是好像不能是中文,我的中文乱码,也有长度显示限制,我添加的内容只显示一半。


由于我们刚刚监控了这个文件,所以我们一添加完内容,就会被收走。


我们最后学习监控目录

首先我们先创建一个目录用于测试


在这里为了跟之前有冲突,我们这里新建了一个a4.conf的文件。


并编辑a4.conf文件:


改这个文件要仔细,我是复制a1的文件,里面的有些都不能跟a1重复,全换成a4,不然运行时会异常。无法监听。
编辑完成后启动命令,
然后我们将刚才创建的a1.test文件放在a1_test目录中 我们就可以收集到a1.test里面的整体内容,并且添加进去的文件会出现这个后缀 .completed


在hadoop里出现这个文件夹,这里的名字跟a4里面的是一起的,里面如果有你刚刚监听到的文件,就证明这里配置没问题了。

也可以通过命令hadoop fs -ls :


这样我们就实现了通过Flume对网络,文件,目录的监控。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值