Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache Kafka Connect,汇合HDFS连接器,未知魔法字节_Java_Avro_Apache Kafka Connect_Confluent Platform_Confluent Schema Registry - Fatal编程技术网

Java Apache Kafka Connect,汇合HDFS连接器,未知魔法字节

Java Apache Kafka Connect,汇合HDFS连接器,未知魔法字节,java,avro,apache-kafka-connect,confluent-platform,confluent-schema-registry,Java,Avro,Apache Kafka Connect,Confluent Platform,Confluent Schema Registry,我使用Confluent HDFS连接器将数据从Kafka主题移动到HDFS日志文件。但当我运行这些命令时: ./bin/connect独立 etc/schema registry/connect-avro-standalone.properties\ etc/kafka connect hdfs/quickstart-hdfs.properties 我犯了错误。我怎样才能解决这个问题。原因是什么 原因:org.apache.kafka.common.errors.SerializationEx

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

./bin/connect独立 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:41895]错误任务正在终止,并将 手动重新启动后才能恢复 (org.apache.kafka.connect.runtime.WorkerTask:142)


如果您试图读取连接器中的数据,并且已将
键.converter
值.converter
设置为
AvroConverter
,但您的输入主题中的数据未被使用架构注册表的同一
AvroSerializer
序列化,则会发生这种情况


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

我怎么做?将org.apache.kafka.connect.storage.StringConverter作为etc/schema registry/connect-avro-standalone.properties中的key.converter和value.converter,而不是该文件中的当前值。谢谢,但这还不够。合流的move.avro文件,但该.avro文件只是包含了avro模式。不是数据。然而卡夫卡的主题有很多数据。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中,那么就考虑使用BytEurRay转换器将其合并到0.11,这是在发布候选阶段。否则,您必须使用AvroConverter,这意味着需要使用模式注册表将数据生成到Kafka。看起来这不是你目前正在做的,所以我想说的是使用bytearrayconverter,处理hdfs端的任何不良记录。