Intento crear un conector con MSK Connect, pero aparece un error. ¿Cómo puedo solucionarlo?

Última actualización: 07-12-2021

Intento crear un conector con Amazon Managed Streaming for Apache Kafka (Amazon MSK) Connect. Sin embargo, recibo un mensaje de error. ¿Cómo puedo resolverlo?

Resolución

Al crear un conector mediante MSK Connect, es posible que reciba uno de estos mensajes de error:

  • “Invalid parameter connectorConfiguration: The following required field is missing or has invalid value: tasks.max” (Parámetro connectorConfiguration no válido: falta el siguiente campo obligatorio o tiene un valor no válido: tasks.max).
  • “org.apache.kafka.connect.errors.ConnectException: Failed to find any class that implements Connector and which name matches...” (org.apache.kafka.connect.errors.connectException: no se pudo encontrar ninguna clase que implemente el conector y cuyo nombre coincida...).
  • “org.apache.kafka.common.errors.TimeoutException: Timed out waiting to send the call. Call: fetchMetadata” (org.apache.kafka.common.errors.TimeoutException: se agotó el tiempo de espera para enviar la llamada. Llamada: fetchMetadata).
  • “org.apache.kafka.common.errors.SaslAuthenticationException: Too many connects” (org.apache.kafka.common.errors.saslAuthenticationException: demasiadas conexiones).

“Invalid parameter connectorConfiguration: The following required field is missing or has invalid value: tasks.max” (Parámetro connectorConfiguration no válido: falta el siguiente campo obligatorio o tiene un valor no válido: tasks.max).

Si usa un carácter de retorno de carro (/r) al final de una configuración, recibirá el siguiente error:

Invalid parameter connectorConfiguration: The following required field is missing or has invalid value: tasks.max

Para resolver este error, intente lo siguiente:

  • Ingrese manualmente la información de configuración en el cuadro de diálogo de la configuración del conector en lugar de copiar y pegar desde otra fuente, como la documentación.
  • Si utiliza un sistema operativo Windows, use un editor de texto (como Notepad++). Puede utilizar el editor de texto para verificar y eliminar los caracteres de retorno de carro (CRLF) y final de línea (EOL). Para eliminar el retorno de carro, copie y pegue la configuración en un editor de texto. En el editor de texto, elija View (Ver) y Show Symbol (Mostrar símbolo). A continuación, elija Show All Characters (Mostrar todos los caracteres) para revisar los caracteres de CRLF o EOL que pueda haber en una configuración. Sustituya todos los caracteres de CRLF (“\r\n”) por caracteres de LF (“\n”).

“org.apache.kafka.connect.errors.ConnectException: Failed to find any class that implements Connector and which name matches...” (org.apache.kafka.connect.errors.connectException: no se pudo encontrar ninguna clase que implemente el conector y cuyo nombre coincida...).

Para resolver este error, intente lo siguiente:

  • Elimine los caracteres de retorno de carro (/r) que pueda haber en la configuración del conector.
  • Si se necesitan varios archivos para el complemento del conector, asegúrese de que estos archivos se incluyan en el archivo comprimido. (El archivo comprimido se usa durante la creación del complemento del conector). Los archivos JAR del archivo comprimido también deben tener la estructura de archivos esperada y documentada para ese complemento. Se recomienda confirmar que la estructura de los archivos se haya establecido correctamente mediante la revisión y la habilitación de los registros de MSK Connect.

“org.apache.kafka.common.errors.TimeoutException: Timed out waiting to send the call. Call: fetchMetadata” (org.apache.kafka.common.errors.TimeoutException: se agotó el tiempo de espera para enviar la llamada. Llamada: fetchMetadata).

Si el conector no puede conectarse al clúster de Amazon MSK, recibirá un error TimeoutException. Para resolver este error, verifique el grupo de seguridad del clúster de Amazon MSK. El grupo de seguridad debe permitir el tráfico entrante del grupo de seguridad del cliente (asociado con Amazon MSK Connect). Si se utiliza un clúster de Amazon MSK, asegúrese de agregar una regla que permita el tráfico entrante desde sí mismo. Para obtener más información sobre cómo configurar estas reglas, consulte Reglas de grupos de seguridad.

“org.apache.kafka.common.errors.SaslAuthenticationException: Too many connects” (org.apache.kafka.common.errors.saslAuthenticationException: demasiadas conexiones).

Si el clúster de MSK se ejecuta en un tipo de agente kafka.t3.small con el control de acceso de AWS Identity Access Management (IAM), tenga en cuenta el límite de conexión. El tipo de instancia kafka.t3.small acepta solo una conexión TCP por agente por segundo. Cuando se supera este límite de conexión, se produce un error en la prueba de creación. Como resultado, se recibe un error SaslAuthenticationException, que indica un error de credenciales no válidas. Para obtener más información sobre los clústeres de Amazon MSK y el control de acceso de IAM, consulte Cómo funciona Amazon MSK con IAM.

Para resolver el error SaslAuthenticationException, tenga en cuenta los siguientes métodos:

  • En la configuración del empleado de Amazon MSK Connect, actualice los valores de reconnect.backoff.ms y reconnect.backoff.max.ms a “1000” o superior.
  • Actualice a un tipo de instancia de agente más grande (como kafka.m5.large o superior). Para obtener más información sobre los tipos de agentes de Amazon MSK y cómo elegir el tipo de agente correcto, consulte Tipos de agentes y Ajustar el tamaño del clúster.