【问题标题】:Unable to use elasticsearch sink connector (kafka-connect)无法使用弹性搜索接收器连接器(kafka-connect)
【发布时间】:2020-04-04 21:28:32
【问题描述】:

我目前正在尝试在 kafka-connect 集群上启动 elasticsearch sink 连接器(分布式模式) 该集群使用 confluent 提供的 helm 图表部署在 kubernetes 中,并在其中进行了一些调整。 以下是相关部分:

对于 values.yaml

configurationOverrides:
  "plugin.path": "/usr/share/java,/usr/share/confluent-hub-components"
  "key.converter": "org.apache.kafka.connect.storage.StringConverter"
  "value.converter": "org.apache.kafka.connect.json.JsonConverter"
  "key.converter.schemas.enable": "false"
  "value.converter.schemas.enable": "false"
  "internal.key.converter": "org.apache.kafka.connect.json.JsonConverter"
  "internal.value.converter": "org.apache.kafka.connect.json.JsonConverter"
  "config.storage.replication.factor": "3"
  "offset.storage.replication.factor": "3"
  "status.storage.replication.factor": "3"
  "security.protocol": SASL_SSL
  "sasl.mechanism": SCRAM-SHA-256

对于 kube 集群部分:

releases:
  - name: kafka-connect
    tillerless: true
    tillerNamespace: qa3-search
    chart: ../charts/cp-kafka-connect
    namespace: qa3-search
    values:
      - replicaCount: 2
      - configurationOverrides:
          config.storage.topic: kafkaconnectKApp_connect-config_private_json
          offset.storage.topic: kafkaconnectKApp_connect-offsets_private_json
          status.storage.topic: kafkaconnectKApp_connect-statuses_private_json
          connect.producer.client_id: "connect-worker-producerID"
          groupId: "kafka-connect-group-ID"
          log4j.root.loglevel: "INFO"
          bootstrap_servers: "SASL_SSL://SOME_ACCESSIBLE_URL:9094"
          client.security.protocol: SASL_SSL
          client.sasl.mechanism: SCRAM-SHA-256
      - prometheus:
          jmx:
            enabled: false
      - ingress:
          enabled: true
          hosts:
            - host: kafka-connect.qa3.k8s.XXX.lan
              paths:
                - /
      - cp-schema-registry:
          url: "https://SOME_ACCESSIBLE_URL"

然后我正在加载 elasticsearch sink 连接器:

curl -X POST -H 'Content-Type: application/json' http://kafka-connect.qa3.k8s.XXX.lan/connectors -d '{
"name": "similarads3",
"config": {
"connector.class": "io.confluent.connect.elasticsearch.ElasticsearchSinkConnector",
"consumer.interceptor.classes": "io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor",
"topics": "SOME_TOPIC_THAT_EXIST",
"topic.index.map": "SOME_TOPIC_THAT_EXIST:test_similar3",
"connection.url": "http://vqa38:9200",
"batch.size": 1,
"type.name": "similads",
"key.ignore": true,
"errors.log.enable": true,
"errors.log.include.messages": true,
"value.converter": "io.confluent.connect.avro.AvroConverter",
"value.converter.schema.registry.url": "SOME_ACCESSIBLE_URL",
"schema.ignore": true
}
}' -vvv

我正在通过环境变量为经纪人身份验证加载用户和密码,我很确定它与权限 ACL 相关...

困扰我的是,连接器启动时没有创建索引,并且 kafka-connect 的日志中没有任何错误......它说一切都已开始

Starting connectors and tasks using config offset 68

在 /connectors/similarads3/status 上运行 curl 时,一切都在运行,没有错误。

所以看起来我忽略了一些东西,但我无法弄清楚缺少什么。 当我检查消费者在这个特定主题上的滞后情况时,似乎没有任何消息被消费过。

如果没有足够的信息,我可以提供更多。 有人有想法吗?

编辑:我应该提到我尝试使用不存在的主题对其进行配置:日志中再次没有错误。 (我不知道如何解释)

编辑2:这个问题解决了 实际上我们发现了这个问题,而且似乎我确实忽略了一些事情:为了读取受 ACL 权限保护的主题,您必须为连接器和接收器使用者提供 SASL 配置。 因此,只需复制以 consumer. 为前缀的配置即可解决此问题。 但是,我仍然很惊讶没有任何日志可以指出这一点。

【问题讨论】:

    标签: elasticsearch apache-kafka apache-kafka-connect


    【解决方案1】:

    我们在尝试使用 topic.index.map 属性时遇到了问题。即使你让它工作了,文档中也会有一条说明它已被弃用。

    topic.index.map
    This option is now deprecated. A future version may remove it completely. Please use single message transforms, such as RegexRouter, to map topic names to index names.
    

    我会尝试使用 RegexRouter 来代替。

    "transforms": "renameTopicToIndex",
    "transforms.renameTopicToIndex.type": "org.apache.kafka.connect.transforms.RegexRouter"
    "transforms.renameTopicToIndex.regex": ".*"
    "transforms.renameTopicToIndex.replacement": "test_similar3"
    

    【讨论】:

    • 感谢您的回答。我只是尝试使用正则表达式路由器而不是主题图,然后再次:WorkerSinkTask{id=similarads1-0} Sink task finished initialization and start,然后什么也没有发生...没有错误,也没有接收器操作
    • 不,它也不起作用实际上我解决了这个问题,我将编辑我的问题以供将来参考。再次感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 2019-06-17
    • 2022-11-24
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多