Hadoop | flume的source、channel和sink类型(三)

  • 内容
  • 相关

对Flume的安装和基本配置熟悉之后,将进行Flume的source、channel和sink类型学习。

一、Flume的官方文档介绍

官方文档介绍:http://flume.apache.org/FlumeUserGuide.html

二、Flume Sources 描述

2.1 Avro Source

2.1.1 介绍

监听Avro端口,从Avro client streams接收events。当与另一个(前一跳)Flume agent内置的Avro Sink配对时,它可以创建分层收集拓扑。字体加粗的属性必须进行设置

2.1.2 示例

示例一:示例请参考官方文档

示例二

  /root/flume/conf下创建文档avro.conf

#配置一个agent,agent的名称可以自定义(如a1)

#指定agent的sources(如s1)、sinks(如k1)、channels(如c1)

#分别指定agent的sources,sinks,channels的名称 名称可以自定义

a1.sources = s1

a1.sinks = k1

a1.channels = c1

 

#配置source

a1.sources.s1.channels = c1

a1.sources.s1.type = avro

a1.sources.s1.bind = 192.168.1.102

a1.sources.s1.port = 6666

 

#配置channels

a1.channels.c1.type = memory

 

#配置sinks

a1.sinks.k1.channel = c1

a1.sinks.k1.type = logger

 

#为sources和sinks绑定channels

a1.sources.s1.channels = c1

a1.sinks.k1.channel = c1

  启动flume

[hadoop@hadoop1 ~]$ flume-ng  agent  --conf  /root/flume/conf  --conf-file /root/flume/conf/avro.conf  --name  a1  -Dflume.root.logger=DEBUG,console  -Dorg.apache.flume.log.printconfig=true  -Dorg.apache.flume.log.rawdata=true

//关于各种参数的说明,可以输入flume-ng查看

  通过flume提供的avro客户端向指定机器指定端口发送日志信息:

[root@fishyoung ~]# flume-ng  avro-client  -c  /root/flume/conf  -H  192.168.136.133  -p  6666  -F  source.log

接收到的信息

2.2 Thrift Source

2.2.1 介绍

ThriftSource 与Avro Source 基本一致。只要把source的类型改成thrift即可,例如a1.sources.r1.type = thrift,比较简单,不做赘述。

2.3 Exec Source

2.3.1 介绍

ExecSource的配置就是设定一个Unix(linux)命令,然后通过这个命令不断输出数据。如果进程退出,Exec Source也一起退出,不会产生进一步的数据。

下面是官网给出的source的配置,加粗的参数是必选。

2.3.2 示例

① 添加配置文件/root/flume/conf/exec.conf

#配置文件

#Name the components on this agent 

a1.sources= s1 

a1.sinks= k1 

a1.channels= c1 

  

#配置sources

a1.sources.s1.type = exec 

a1.sources.s1.command = tail -F /home/hadoop/logs/test.log 

a1.sources.s1.channels = c1 

  

#配置sinks

a1.sinks.k1.type= logger 

a1.sinks.k1.channel= c1 

  

#配置channel

a1.channels.c1.type= memory

② 启动命令

[hadoop@hadoop1 ~]$ flume-ng  agent  --conf /root/flume/conf  --conf-file  /root/flume/conf/exec.conf  --name  a1  -Dflume.root.logger=DEBUG,console  
-Dorg.apache.flume.log.printconfig=true  -Dorg.apache.flume.log.rawdata=true


继续往日志里添加数据

接收到的信息

2.4 Spooling Directory Source

2.4.1 介绍

Spooling Directory Source监测配置的目录下新增的文件,并将文件中的数据读取出来。其中,Spool Source有2个注意地方,第一个是拷贝到spool目录下的文件不可以再打开编辑,第二个是spool目录下不可包含相应的子目录。这个主要用途作为对日志的准实时监控。

下面是官网给出的source的配置,加粗的参数是必选。可选项太多,这边就介绍一个fileSuffix,即文件读取后添加的后缀名,这个是可以更改。

2.4.2 示例

① 创建文件/root/flume/conf/spooldir.conf

a1.sources = s1 

a1.sinks = k1 

a1.channels = c1 

  

# Describe/configure the source 

a1.sources.s1.type =spooldir 

a1.sources.s1.spoolDir =/home/hadoop/logs 

a1.sources.s1.fileHeader= true 

a1.sources.s1.channels =c1 

  

# Describe the sink 

a1.sinks.k1.type = logger 

a1.sinks.k1.channel = c1 

  

# Use a channel which buffers events inmemory 

a1.channels.c1.type = memory

② 启动命令

[hadoop@hadoop1 ~]$ flume-ng  agent  --conf /root/flume/conf  --conf-file  /root/flume/conf/spooldir.conf   --name  a1  -Dflume.root.logger=INFO,console

将123.log移动到logs目录

运行结果

2.6 其他

参考http://flume.apache.org/FlumeUserGuide.html#flume-sources

三、Flume channel和sink 描述

参考http://flume.apache.org/FlumeUserGuide.html#flume-sinks

参考http://flume.apache.org/FlumeUserGuide.html##flume-channels

 您阅读这篇文章共花了:

上一篇:Hadoop | flume的安装与基本配置(二)

下一篇:hadoop | Flume的配置方式——实战(四)

本文标签:    

版权声明:本文依据CC-BY-NC-SA 3.0协议发布,若无特殊注明,本文皆为《fishyoung》原创,转载请保留文章出处。

本文链接:Hadoop | flume的source、channel和sink类型(三) - http://www.fishyoung.com/post-302.html