我尝试在不同计算机上的两个代理之间使用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
来源接受输入。
答案 0 :(得分:0)