gpt4 book ai didi

apache-kafka - 将 avro 文件推送到 Kafka

转载 作者:行者123 更新时间:2023-12-01 13:18:57 25 4
gpt4 key购买 nike

我有一个现有的 avro 文件,我想将文件数据推送到 kafka 但它不起作用

/usr/bin/kafka-console-producer --broker-list test:9092 --topic test < part-m-00000.avro

谢谢

最佳答案

您需要先下载 avro-tools JAR 文件
然后从文件中获取模式

java -jar avro-tools.jar getschema part-m-00000.avro > schema.avsc
然后安装 jq 因为它会以一种分钟的格式帮助架构文件
接下来,理想情况下,Kafka 中的 Avro 消息不应包含每条记录的模式,因此如果您安装了 Confluent(或 Hortonworks 的 Avro Schema Registry,但我还没有安装),它将提高您的整体主题吞吐量和网络使用率尝试一下)。
在它运行之后,并且您下载了 Confluent Platform 的其余部分,有一个用于生成 Avro 数据的脚本,但是要使用它,您需要来自 Avro 文件的 JSON 记录。再次使用 avro-tools 获取
java -jar avro-tools.jar tojson part-m-00000.avro > records.json
注意 - 此输出文件将明显大于 Avro 文件
现在,您可以使用将发送到注册中心的模式和二进制 avro 数据生成到主题中,该主题是从将模式应用于 JSON 记录转换而来的
bin/kafka-avro-console-producer \
--broker-list localhost:9092 --topic test \
--property schema.registry.url=http://localhost:8081 \
--property value.schema="'$(jq -r tostring schema.avsc)'" < records.json
注意:在此命令之前运行 jq -r tostring schema.avsc,确保它不是转义的 JSON 字符串

如果输出 JSON 文件太大,您也可以将 avro-tools 输出流式传输到生产者
代替
< records.json 
< $(java -jar avro-tools.jar tojson part-m-00000.avro)

替代解决方案包括读取 Spark 中的 Avro 文件,然后将这些记录转发到 Kafka

关于apache-kafka - 将 avro 文件推送到 Kafka,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51664191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com