我正在学习Apache Flume,但是我不明白一些事情。 当源/接收器类型为avro时,这是否意味着该事件以avro格式发送?
也就是说,我的数据被封装到flume事件中,并以avro格式从接收器发送到源。 documentation说:
Flume事件定义为具有字节有效负载和可选字符串属性集的数据流单位。 Flume代理是一个(JVM)进程,承载了组件,事件通过这些组件从外部源流到下一个目标(hop)。
这是否意味着在流的顶部没有avro源,在流的末尾没有avro水槽是没有意义的?
这是否意味着只有在先出现avro源时才具有avro接收器(然后只有在avro接收器之后才具有avro源)才有意义?
谢谢谁会回答。
答案 0 :(得分:0)
具有Avro源,然后打开一个用于接受Avro字节的网络端口。
您发送给它的数据应该已经是Avro,不会为您转换。
另一方面,接收器采用内部的“ Flume事件”对象结构,并将转换为Avro格式。 AvroSink需要连接一个网络端口,该端口恰好支持由Avro Source启动的服务器的输入格式。
https://flume.apache.org/FlumeUserGuide.html#setting-multi-agent-flow
如果您想使用其他类型的源并即时转换为Avro,则可以使用吗啡拦截器或Avro事件序列化器