apache-kafka - 来自和到文件的 Kafka Avro 控制台消费者/生产者
问题描述
是否可以使用 Avro Console Consumer 将 Avro 编码消息保存到文件中,并使用 Avro Console Producer 从该文件中读取以写入另一个主题,因为我有一个模式字符串可提供给控制台消费者和生产者?这是开箱即用支持的用例还是我需要为它编写一个 shell 脚本?
解决方案
Avro 控制台生产者只接受 JSON 编码的字符串,不接受 Avro 文件。但是,给定一个 Avro 文件,您可以将其记录转储为 JSON 和 AVSC 模式,然后可以解析到控制台生成器(但是,根据我的经验,它并非在所有情况下都有效)。
您可以使用 Kafka Connect S3 或 HDFS 接收器(或 Apache Nifi)来使用 Schema Registry 编码数据并写入本地 Avro 文件。
您可以使用 MinIO 或 Hadoop Ozone 来模拟本地 S3 端点,或者您可以使用file://
带有 HDFS 连接器的 URI 前缀来写入本地磁盘
据我所知,没有 HDFS 源 Kafka 连接器,但 Confluent 确实提供了 S3 源连接器。Nifi 可以读取和写入两个文件位置,所以也许从它开始
Flink 或 Spark 也可以工作,但 Avro 序列化器设置不太简单,无法使其恢复为Schema Registry 格式
推荐阅读
- vue.js - 带有Vue CTRL + Click的VSCode转到定义在vue文件的HTML中不起作用
- java - 如何修复重叠的白色背景
- c++ - 是否使用 lambda 线程安全创建静态变量?
- python - 为什么我的 python 列表不能从循环中插入到我的 SQLITE 数据库中?
- java - 从 DATE 格式早于 x 小时或秒的数据库中检索项目
- java - Maven 依赖项失败但仍然可以编译
- php - 分页 laravel 问题转到下一页
- mongodb - MongoDB查找正则表达式匹配的关键字
- android - ListPreference:将字符串数组中的项目引用为 defaultValue
- java - 如何在弹性搜索中为多个布尔查询生成查询