Flume - 使用Avro源和接收器分层数据流

时间:2014-05-31 00:07:30

标签: hadoop flume

我尝试在不同计算机上的两个代理之间使用Avro源/接收器设置简单的分层数据流。

vm-host-01节点上的第一个代理(称为"代理")有一个netcat来源,一个memory频道和一个avro接收器。

vm-host-02节点上的第二个代理(称为"收集器"具有avro源,memory通道和hdfs接收器。

这是第一个代理"代理"的配置。

agent.sources=s1
agent.channels=c1
agent.sinks=k1

agent.sources.s1.type=netcat
agent.sources.s1.channels=c1
agent.sources.s1.bind=vm-host-01
agent.sources.s1.port=12345

agent.channels.c1.type=memory

agent.sinks.k1.type=avro
agent.sinks.k1.channel=c1
agent.sinks.k1.hostname=vm-host-02
agent.sinks.k1.port=42424

这是第二个代理"收集器"的配置。在第二台机器上:

collector.sources=av1
collector.channels=c1
collector.sinks=k1

collector.sources.av1.type=avro
collector.sources.av1.bind=vm-host-02
collector.sources.av1.port=42424
collector.sources.av1.channels=c1

collector.channels.c1.type=memory

collecor.sinks.k1.type=hdfs
collecor.sinks.k1.hdfs.path=/user/root/flume/mydata
collecor.sinks.k1.hdfs.fileType=DataStream
collecor.sinks.k1.hdfs.writeType=text
collecor.sinks.k1.hdfs.filePrefix=Hello
collecor.sinks.k1.hdfs.fileSuffix=.txt
collecor.sinks.k1.channel=c1

现在当我远程登录到第一个主机(vm-host-01)并输入一些字符串时,第一个代理的命令提示符甚至没有改变。 (第二个主机的命令提示符也没有。)

如果我编辑"代理"的配置并将其接收器更改为hdfs,我可以telnet in,输入一个字符串,查看命令提示符acknolwedge this并将其写入HDFS。

添加avro接收器似乎会禁用其netcat来源接受输入。

1 个答案:

答案 0 :(得分:0)

哎呀,我拼错了#34;收藏家" as" collecor"。