es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Utilizando el ConfluentSchemaRegistry de Apache NiFi con el Registro de Esquemas de Apicurio.

Quiero usar Apache NiFi para escribir algunos datos codificados en Avro en Apache Kafka.

Por lo tanto, uso el procesador “ConvertRecord” para convertir de JSON a Avro. Para Avro, se utiliza “AvroRecordSetWriter” con “ConfluentSchemaRegistry”. La URL del esquema está configurada como “http:<nombre del host>:<puerto>/apis/ccompat/v6” (el nombre del host y el puerto no son importantes para esta pregunta). Para tener una alternativa gratuita a “Confluent Schema Registry”, implementé un “Apicurio Schema Registry”. La API “ccompat” debería ser compatible con Confluent.

Pero cuando ejecuto el flujo de trabajo de NiFi, obtengo el siguiente error que indica que el esquema con el nombre proporcionado no se encuentra:

“No se pudo recuperar el esquema con el nombre […] del Schema Registry configurado”.

Pero definitivamente creé el esquema Avro con este nombre en la interfaz web de Apicurio Registry.

¿Alguien puede ayudarme, por favor? ¿Hay alguien que esté usando NiFi para codificar en Avro en Kafka utilizando Apicurio Schema Registry?

Actualización:

Aquí hay algunas capturas de pantalla de mi flujo de trabajo y su configuración.

Ver una descripción general del flujo de trabajo: Imagen

Configurar el nombre del esquema utilizando “UpdateAttribute”: Imagen

Usar “ConvertRecord” con “JsonTreeReader”: Imagen

y “ConfluentSchemaRegistry”: Imagen

y “AvroSetWriter”: Imagen

Actualización 2:

Debe configurar este ID de artefacto: Imagen

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que estás encontrando un problema con tu pipeline de NiFi, donde el esquema Avro con el nombre dado no se puede encontrar en el Registro de Esquemas de Apicurio configurado. Aquí hay algunas posibles soluciones para ayudar a solucionar problemas y resolver el problema:

    1. Verifica el nombre del esquema: Asegúrate de que el nombre del esquema Avro que creaste en el Registro de Esquemas de Apicurio coincida con el nombre en la configuración de tu pipeline de NiFi. Es posible que haya un error tipográfico o una diferencia en los nombres que esté causando el error.
    2. Verifica la URL del registro de esquemas: Asegúrate de que la URL del Registro de Esquemas de Apicurio sea correcta y accesible desde tu instancia de NiFi. Mencionaste que la API ccompat debería ser compatible con Confluent, así que asegúrate de que la URL esté configurada correctamente y que el registro de Apicurio esté en funcionamiento.

    3. Verifica la compatibilidad del esquema Avro: Asegúrate de que el esquema Avro que creaste en el Registro de Esquemas de Apicurio sea compatible con los datos que estás intentando convertir. Puedes usar la interfaz de usuario de Apicurio para validar el esquema y asegurarte de que coincida con los campos y tipos de datos en tus datos JSON.

    4. Utiliza el ID de artefacto correcto: Como se vio en tu actualización, asegúrate de establecer el “ID de artefacto” en la configuración de “ConfluentSchemaRegistry” para que se comunique correctamente con el Registro de Esquemas de Apicurio.

    Con estas posibles soluciones en mente, deberías poder solucionar problemas y resolver el problema para poder usar con éxito Apache NiFi para escribir datos codificados en Avro en Apache Kafka utilizando el Registro de Esquemas de Apicurio.

Comments are closed.