我正在尝试使用 MSK Connect 创建连接器,但收到错误。如何解决此问题?

上次更新日期:2021 年 12 月 7 日

我正在尝试使用 Amazon Managed Streaming for Apache Kafka (Amazon MSK) Connect 创建连接器。但是我收到了错误消息。如何解决此问题?

解决方案

使用 MSK Connect 创建连接器时,您可能会收到以下错误消息之一:

  • “参数 connectorConfiguration 无效:以下必填字段缺失或值无效:tasks.max”
  • “org.apache.kafka.connect.errors.ConnectException:找不到任何实现连接器且名称匹配的类...”
  • “org.apache.kafka.common.errors.TimeoutException:等待发送呼叫超时。呼叫:fetchMetadata”
  • “org.apache.kafka.common.errors.SaslAuthenticationException:连接数太多”

“参数 connectorConfiguration 无效:以下必填字段缺失或值无效:tasks.max”

如果在配置结束处使用回车符 (/r) 字符,则会收到以下错误:

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

要解决此错误,请尝试执行以下操作:

  • 在连接器配置对话框中手动输入配置信息,而不是从其他来源(如文档)复制和粘贴。
  • 如果在 Windows 操作系统中操作,请使用文本编辑器(例如 Notepad++)。您可以使用文本编辑器检查和删除回车符 (CRLF) 和任何行尾 (EOL) 字符。要删除回车符,请将配置复制并粘贴到文本编辑器中。在文本编辑器中,选择查看显示符号。然后,选择显示所有字符以检索配置中可能存在的任何 CRLF 或 EOL 字符。将所有 CRLF 字符 ("\r\n") 替换为 LF 字符 ("\n")。

“org.apache.kafka.connect.errors.ConnectException:找不到任何实现连接器且名称匹配的类...”

要解决此错误,请尝试执行以下操作:

  • 删除连接器配置中可能存在的所有回车符 (/r) 字符。
  • 如果连接器插件需要多个文件,请确保压缩文件中包含这些文件。(在创建连接器插件的过程中使用压缩文件。) 压缩文件中的 JAR 文件还必须为该插件记录预期的文件结构。最佳实践是通过查看和启用 MSK Connect 的日志来确认文件结构设置正确。

“org.apache.kafka.common.errors.TimeoutException:等待发送呼叫超时。呼叫:fetchMetadata”

如果连接器无法访问您的 Amazon MSK 集群,则您会收到 TimeOutException 错误。要解决此错误,请检查您的 Amazon MSK 集群的安全组安全组必须允许来自客户端安全组的入站流量(与 Amazon MSK Connect 关联)。如果正在使用 Amazon MSK 集群,请确保添加允许来自自身的入站流量的规则。有关设置这些规则的更多信息,请参阅安全组规则

“org.apache.kafka.common.errors.SaslAuthenticationException:连接数太多”

如果您的 MSK 集群在采用 AWS Identity Access Management (IAM) 访问控制的 kafka.t3.small 代理类型上运行,请注意连接限制kafka.t3.small 实例类型每秒只能接受每个代理一个 TCP 连接。超出此连接限制时,您的创建测试将失败。因此,您会收到 SaslAuthenticationException 错误,表示凭证无效错误。有关亚 Amazon MSK 集群和 IAM 访问控制的更多信息,请参阅 Amazon MSK 如何与 IAM 配合使用

要解决 SaslAuthenticationException 错误,请考虑以下方法:

  • 在您的 Amazon MSK Connect 工作线程配置中,将 reconnect.backoff.msreconnect.backoff.max.ms 的值更新为“1000”或更高。
  • 升级到更大的代理实例类型(例如 kafka.m5.large 或更高版本)。有关 Amazon MSK 代理类型和选择正确代理类型的更多信息,请参阅代理类型正确调整集群大小