Flume fan out(扇出)详解

在flume中有时候需要将一个源(source)将数据发送到多个地方(sink),在flume中该术语叫做扇出(fan out),也就是从一个source向多个channel,就是向多个sink传递事件。下面就展示一个将同一事件传递到HDFS和logger。

agent1.sources = source1
agent1.sinks = sink1a sink1b
agent1.channels = channel1a channel1bagent1.sources.source1.channels = channel1a channel1b
agent1.sinks.sink1a.channel = channel1a
agent1.sinks.sink1b.channel = channel1bagent1.sources.source1.type = spooldir   
agent1.sources.source1.spoolDir = /tmp/spooldiragent1.sinks.sink1a.type = hdfs
agent1.sinks.sink1a.hdfs.path = /tmp/flume
agent1.sinks.sink1a.hdfs.filePrefix = events
agent1.sinks.sink1a.hdfs.fileSuffix = .log
agent1.sinks.sink1a.hdfs.inUsePerfix = _
agent1.sinks.sink1a.hdfs.fileType = DataStreamagent1.sinks.sink1b.type = loggeragent1.channels.channel1a.type = file
agent1.channels.channel1b.type = memory

与一对一不同的是将agent1.sources.source1.channels属性设置为一个由channel1a和channel1b组成的空格分割列表,使得该配置为向多个channel传递事件。channel1b设置为memory意思是调试所用,并不需要当flume丢失数据重启再次打印在控制台上。
启动改agent

flume-ng agent -c conf -f fanout.conf -n agent1 -Dflume.root.logger=DEBUG,console

在/tmp/spooldir上新建一个文件


[root@master spooldir]# echo "I Love strom" > /tmp/spooldir/.file7.txt
[root@master spooldir]# mv /tmp/spooldir/.file7.txt /tmp/spooldir/file7.txt

在控制台上
这里写图片描述
现在控制台上显示文件的内容,然后将文件内容写入HDFS,在HDFS中查看该文件内容:
这里写图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部