当前位置: 首页 > 知识库问答 >
问题:

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

程和畅
2023-03-14

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

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

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

这是否意味着在流的顶部有一个avro源或在流的末尾有一个avro接收器是没有意义的?

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

谢谢谁来回答。

共有1个答案

竺鸿骞
2023-03-14

拥有Avro源,然后它会打开一个旨在接受Avro字节的网络端口。

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

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

https://flume . Apache . org/flume user guide . html #设置-多代理-流

如果您想使用不同类型的源代码并即时转换为Avro,您可以使用Morphine拦截器或Avro事件序列化程序

 类似资料:
  • 问题内容: 我想我需要更好地了解连接池的概念。我正在使用Java与ConnectorJ一起工作,并将servlet部署在Apache Tomcat服务器上。我一直在关注该文档,因此我的Tomcat context.xml如下所示: 我使用推荐的方式从数据源获得连接: 我的问题是:为什么我必须在context.xml中为我的数据源指定用户和密码。如果我错了,请纠正我,但我认为连接池的重点是重用拥有相

  • 我有一个broker.xml文件,它有以下代码 接受者说,嘿,你可以在端口61617上与我连接,我正在听它(这对我来说是有意义的),但是连接器在这个broker.xml中的角色是什么。Connector的目标端口与acceptor相同(TCP://0.0.0.0:61616),我想了解一下Connector中提到的端口是什么意思,能不能解释一下。

  • 我正在尝试加入Flink中的两种类型(比如A和B)。我想确认我的理解是否正确。事件的某些属性- 事件A立即流入flink,延迟几分钟(5-10分钟) 事件B以15-30分钟的轻微延迟流动 事件a和事件B之间存在1:1连接 我已将事件A的数据流配置为10分钟的BoundedAutofordernessTimestampExtractor,将事件B的数据流配置为30分钟。稍后,我使用表API进行时间窗

  • 我试图构建一个系统,从Kafka读取json数据(无模式),将其转换为avro并将其推送到s3。 我已经能够使用kstream和KSQL实现json到avro的转换。我想知道使用Kafka Connect的自定义转换是否可以实现同样的效果。 这是我迄今为止所尝试的: 其中avro_schema是avsc文件中指定的架构名称。 我不确定这是否是正确的方法,但我面临的问题是,当调用newRecord(

  • 问题内容: 我有一个foreach循环在其中分叉。在进程派生之后,它将访问数据库。我收到一个错误: 问题是,分叉 后 ,我将连接到数据库。 我的问题:为什么会这样? 如果发生这种情况,我实际上是 在 派生 之前 访问数据库吗?子级会继承DB连接吗? (注意:我可以发布代码,但是它很大,因为它全部放在类中,这可能是导致我在访问数据库时感到困惑的原因。另一件事,您应该知道的是我正在使用ZF。) 问题答

  • 我有以Avro格式存储的Kafka主题。我想使用整个主题(在收到时不会更改任何消息)并将其转换为Parket,直接保存在S3上。 我目前正在这样做,但它要求我每次消费一条来自Kafka的消息,并在本地机器上处理,将其转换为拼花文件,一旦整个主题被消费,拼花文件完全写入,关闭写入过程,然后启动S3多部分文件上传。或《Kafka》中的阿夫罗- 我想做的是《Kafka》中的阿夫罗- 注意事项之一是Kaf