flume之source(3)

 flumesource

 

前一篇里说的是netcat sousrce,source的类型很多。

netcat source

作用就是打开一个特定的端口,然后再端口上监听数据

 

 

1avro source(使用起来跟netcat很像,能做的事跟谷歌的buffer很像)

test.sources=so1//我们的agent的名字叫testagentsourceso1

test.sinks=si1//agentsinksi1

test.channels=c1//agentchannelc1

 

#source

test.sources.so1.type=avro

test.sources.so1.bind=hadoop222

test.sources.so1.port=6666

#sink

test.sinks.si1.type=logger

#channel

test.channels.c1.type=memory

test.channels.c1.capacity=1000

test.channels.c1.transactionCapacity=100

 

test.sources.so1.channels=c1

test.sinks.si1.channel=c1//把三个关联起来

 

进入到flumebin目录下

然后:

flume-ng avro-client -H hadoop222 -p 6666 -F ../a.txt

这样我们就能把a.txt文件里面的内容监听到了。

 

2exec source

我们写

tail -F a.txt就会列出所有的文件内容

但是如果我们在另外的用户动态的增加了数据,然后这儿会显示出来

最简单的就是克隆一个会话

test.sources=so1//我们的agent的名字叫testagentsourceso1

test.sinks=si1//agentsinksi1

test.channels=c1//agentchannelc1

 

#source

test.sources.so1.type=exec

test.sources.so1.command=tail -F /home.rooby./fdsaf/a.txt

 

#sink

test.sinks.si1.type=logger

#channel

test.channels.c1.type=memory

test.channels.c1.capacity=1000

test.channels.c1.transactionCapacity=100

 

test.sources.so1.channels=c1

test.sinks.si1.channel=c1//把三个关联起来

//注意,默认是增加了二十行以上才会显示一次

 

3spooling Directory Souce

我们的输入的一个目录

有这样的要求:

1:里面的文件,文件名不能重名

2:不能修改目录里面的文件内容,你要在其他目录里面写好了,移动到里面是可以的。

test.sources=so1//我们的agent的名字叫testagentsourceso1

test.sinks=si1//agentsinksi1

test.channels=c1//agentchannelc1

 

#source

test.sources.so1.type=spooldir

test.sources.so1.spoolDir=/home/roobby/fdas/log

 

#sink

test.sinks.si1.type=logger

#channel

test.channels.c1.type=memory

test.channels.c1.capacity=1000

test.channels.c1.transactionCapacity=100

 

test.sources.so1.channels=c1

test.sinks.si1.channel=c1//把三个关联起来

 

 

4sequence Generator Source

这个不是提供给我们用的,只是用了测试用的。

 

 

 

5syslog source

etc加一个叫rsyslog.conf的文件最后加入一句话

*.* @@192.168.80.100:5140

所有的日志

进入到/etc/init.d

sudu service rsyslog restart重新启动一下

 

我们用这个source的时候,关闭linux的一个进程

sudo /usr/sbin/setenforce 0

 

 

test.sources=so1//我们的agent的名字叫testagentsourceso1

test.sinks=si1//agentsinksi1

test.channels=c1//agentchannelc1

 

#source

test.sources.so1.type=syslogtcp

test.sources.so1.host=192.168.80.100

test.sources.so1.port=5140

 

#sink

test.sinks.si1.type=logger

#channel

test.channels.c1.type=memory

test.channels.c1.capacity=1000

test.channels.c1.transactionCapacity=100

 

test.sources.so1.channels=c1

test.sinks.si1.channel=c1//把三个关联起来

 

收集的是系统的日志;

测试:

我们测试的时候怎么测试:

新开一个会话,然后写入日志

logger "hadoop test"

当然了我们还有其它的source,还有老的source,我们还以可以自己拓展source

 


你可能感兴趣的:(flume之source(3))