【问题标题】:Apache-Kafka-Connect , Confluent-HDFS-Connector , Unknown-magic-byteApache-Kafka-Connect , Confluent-HDFS-Connector , Unknown-magic-byte
【发布时间】:2017-11-04 17:03:23
【问题描述】:

我使用 Confluent HDFS 连接器将数据从 Kafka 主题移动到 HDFS 日志文件。但是当我运行这些命令时:

./bin/connect-standalone etc/schema-registry/connect-avro-standalone.properties \ etc/kafka-connect-hdfs/quickstart-hdfs.properties

我正在采取跟随错误。我怎么解决这个问题。这是什么原因?

引起:org.apache.kafka.common.errors.SerializationException: 为 id -1 反序列化 Avro 消息时出错原因: org.apache.kafka.common.errors.SerializationException:未知的魔法 字节! [2017-06-03 13:44:41,895] 错误任务正在被杀死并将 直到手动重新启动才能恢复 (org.apache.kafka.connect.runtime.WorkerTask:142)

【问题讨论】:

    标签: java avro apache-kafka-connect confluent-platform confluent-schema-registry


    【解决方案1】:

    如果您尝试读取连接器的数据并将key.convertervalue.converter 设置为AvroConverter,但您的输入主题的数据未由使用相同AvroSerializer 序列化架构注册表。

    您必须将转换器与输入数据相匹配。换句话说,使用可以反序列化输入数据的序列化器。

    【讨论】:

    • 我该怎么做?
    • 将 org.apache.kafka.connect.storage.StringConverter 作为 key.converter 和 value.converter 在 etc/schema-registry/connect-avro-standalone.properties 中,而不是其中的当前值文件。
    • 谢谢,但这还不够 dawsaw 。 Confluent 移动 .avro 文件,但该 .avro 文件仅包含 avro 架构。不是数据。但是 kafka 主题有很多数据。 hadoop jar /home/hadoop/avro-tools-1.7.7.jar getmeta /topics/kafka_log_test/partition=0/kafka_log_test+0+0000000018+0000000020.avro >这个命令的结果:avro.schema {"type": "record","name":"myrecord","fields":[{"name":"f1","type":"string"}],"connect.version":1,"connect.name": "myrecord"} 如何发送带有数据的 .avro 文件。
    • 如果您只是希望将主题中的数据完全移至 hdfs,然后考虑使用 bytearrayconverter cwiki.apache.org/confluence/display/KAFKA/… 它已合并到处于发布候选阶段的 0.11。否则,您必须使用 AvroConverter,这意味着需要使用模式注册表将数据生成到 Kafka。看起来这不是您目前正在做的事情,所以我会说只需使用该 bytearrayconverter 并处理 hdfs 端的任何不良记录。
    猜你喜欢
    • 2019-08-04
    • 2018-12-29
    • 2018-07-08
    • 2021-04-12
    • 2022-12-04
    • 2022-07-12
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多