了解Apache Flume中Avro的连接和转换

时间:2018-08-20 16:49:17

标签: avro flume

我正在学习Apache Flume,但是我不明白一些事情。 当源/接收器类型为avro时,这是否意味着该事件以avro格式发送?

也就是说,我的数据被封装到flume事件中,并以avro格式从接收器发送到源。 documentation说:

  

Flume事件定义为具有字节有效负载和可选字符串属性集的数据流单位。 Flume代理是一个(JVM)进程,承载了组件,事件通过这些组件从外部源流到下一个目标(hop)。

这是否意味着在流的顶部没有avro源,在流的末尾没有avro水槽是没有意义的?

这是否意味着只有在先出现avro源时才具有avro接收器(然后只有在avro接收器之后才具有avro源)才有意义?

谢谢谁会回答。

1 个答案:

答案 0 :(得分:0)

具有Avro源,然后打开一个用于接受Avro字节的网络端口。

您发送给它的数据应该已经是Avro,不会为您转换。

另一方面,接收器采用内部的“ Flume事件”对象结构,并将转换为Avro格式。 AvroSink需要连接一个网络端口,该端口恰好支持由Avro Source启动的服务器的输入格式。

https://flume.apache.org/FlumeUserGuide.html#setting-multi-agent-flow

如果您想使用其他类型的源并即时转换为Avro,则可以使用吗啡拦截器或Avro事件序列化器