2017-06-03 1 views
1

J'ai utilisé Confluent HDFS Connector pour déplacer des données de sujets Kafka vers le fichier journal HDFS. Mais quand je lance ces commandes:Apache-Kafka-Connect, Connecteur Confluent-HDFS, Inconnu-magic-byte, Kafka-To-Hdfs

./bin/connect-standalone etc/schéma Registre/connect-avro-standalone.properties \ etc/kafka-connect-hdfs/quickstart-hdfs.properties

Je suis en train de suivre l'erreur. Comment puis-je résoudre ce problème. Quelle est la raison de cela?

Causée par: org.apache.kafka.common.errors.SerializationException: Erreur désérialisation un message Avro id -1 Causée par: org.apache.kafka.common.errors.SerializationException: Inconnu magie octet ! [03/06/2017 13: 44: 41895] erreur tâche est tué et ne récupérera pas redémarré manuellement jusqu'à (org.apache.kafka.connect.runtime.WorkerTask: 142)

Répondre

1

Cela se produit si vous essayez de lire les données lire le connecteur et ont mis key.converter et value.converter à être l'AvroCoverter mais votre sujet d'entrée a des données qui n'ont pas été sérialisées par le même AvroSerializer qui utilise le registre de schéma. Vous devez faire correspondre votre convertisseur aux données d'entrée. En d'autres termes, pour utiliser le sérialiseur qui peut désérialiser les données d'entrée.

+0

Comment puis-je faire cela? –

+0

Placez org.apache.kafka.connect.storage.StringConverter comme key.converter et value.converter dans etc/schema-registry/connect-avro-standalone.properties au lieu des valeurs actuelles de ce fichier. – dawsaw

+0

Merci mais ce n'est pas assez scie à douille. Déplacer le fichier .avro en mode confluent mais ce fichier .avro inclut simplement le schéma avro. Pas de données. Cependant le sujet de kafka a beaucoup de données. pot Hadoop /home/hadoop/avro-tools-1.7.7.jar getmeta /topics/kafka_log_test/partition=0/kafka_log_test+0+0000000018+0000000020.avro > le résultat de cette commande: Avro. schema {"type": "record", "nom": "myrecord", "champs": [{"name": "f1", "type": "chaîne"}], "connect.version": 1, "connect.name": "myrecord"} Comment puis-je envoyer un fichier .avro avec des données. –