flume的安装及使用及各种案例

1.下载flume-1.6.0(apache-flume-1.6.0-bin.tar.gz)

http://flume.apache.org/download.html

2.上传到集群(本文上传到hadoop04节点)

3.解压安装包

tar -zxvf apache-flume-1.6.0-bin.tar.gz -C apps/

并且修改文件夹名字

mv apache-flume-1.6.0-bin flume-1.6.0

4.进入conf文件夹修改配置信息

cd /home/hadoop/apps/flume-1.6.0/conf

5.修改配置文件

[hadoop@hadoop04 conf]$ cp flume-env.sh.template flume-env.sh

vim flume-env.sh


6.配置环境变量

vim .bashrc

增加下面的内容

export FLUME_HOME=/home/hadoop/apps/flume-1.6.0/bin

export PATH=$PATH:$FLUME_HOME/bin

source .bashrc

7.测试是否成功

[hadoop@hadoop04 ~]$ flume-ng version


8.flume的使用

官方帮助文档点击打开链接

Source:读数据
    Avro Source: 

监听Avro的一个端口和接收事件从外部的Avro client获取流数据(监听指定的端口,并且在指定端口上接收数据),在linux里面有一个nc命令(可以向指定端口发送数据,就跟ping baidu.com一样,即通过nc向端口发送数据,Avro Source就可以在这个端口接收到数据)

    Spooling Directory Source: (日志常用)

监控指定文件的数据,在磁盘上去写一个指定的spooling的目录,这个Source可以观测指定的目录的新文件并且把这个事件粘贴到新文件里面。(监控指定的文件夹或者目录,这个文件夹下面是没有子文件夹的,一旦这个目录被监控以后,往该目录下写文件,这个文件将被Spooling DirectorySource读取文件中的内容,读取完之后将文件名增加后缀.COMPLETED

    Exec Source:(日志常用)

运行在一个给定的Unix或者Linux命令,当命令执行时候,Exec Source会去读取接收命令所接受到的数据(比如说cat,tail命令),其实就是使用一个linux命令读取数据信息,然后通过Exec Source就可以获取出来,其实也是写日志。(tail命令就是获取

获取最后多少行,获取最新的新增加的)


Exec Source 和Spool Source 比较

       1、ExecSource可以实现对日志的实时收集,但是存在Flume不运行或者指令执行出错时,将无法收集到日志数据,无法何证日志数据的完整性。

    2、SpoolSource虽然无法实现实时的收集数据,但是可以使用以分钟的方式分割文件,趋近于实时。

    3、总结:如果应用无法实现以分钟切割日志文件的话,可以两种 收集方式结合使用。




Channel:消息队列,缓存
    Memory Channel:

让内存作为我们中间的缓存,所有的事件数据都放到内存队列里去,可以去配置最大的内存大小,可以实现高速的吞吐,但是无法保证数据的完整性。

    JDBC Channel:

    Kafaka Channel:

    File Channel:文件也可以作为Channel,保证数据的完整性与一致性。在具体配置不现的FileChannel时,建议FileChannel设置的目录和程序日志文件保存的目录设成不同的磁盘,以便提高效率。

    Spillable Memory Channel:可分割内存的Channel

    MemoryRecoverChannel在官方文档的建议上已经建义使用FileChannel来替换。


Sink:将Channel中的数据写入到目的地,进行相应的存储文件系统,数据库,或者提交到远程服务器。

    HDFS Sink:把事件写到HDFS上,支持创建新的文本和序列化文件和压缩格式,还支持回滚(最大的好处就是从HDFS中直接分区导入到Hive中)

    Hive Sink:

    Logger Sink:将日志事件在信息的级别去显示(可以显示到控制台)

    Avro Sink:写到指定的端口去写数据

    Thrift Sink:

    

flume部署种类:
单一代理流程:


多代理流程:


流合并:(多代理的一种)


多路复用:从一个地方收集信息最终写到不同的地方去,(多路复制是接收到的数据都是一样的)



注意:一个sink只能指定一个channel

下面是模板&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值