首页 > 解决方案 > Apache Beam:初始化分区“topic-1”时超时。Kafka 客户端可能无法连接到服务器

问题描述

当我的 Apache Beam 应用程序连接到启用了 ACL 的 Kafka 集群时,我收到了这个错误。请帮我解决这个问题。

Caused by: java.io.IOException: Reader-4: Timeout while initializing partition 'test-1'. Kafka client may not be able to connect to servers.
    org.apache.beam.sdk.io.kafka.KafkaUnboundedReader.start(KafkaUnboundedReader.java:128)
    org.apache.beam.runners.dataflow.worker.WorkerCustomSources$UnboundedReaderIterator.start(WorkerCustomSources.java:779)
    org.apache.beam.runners.dataflow.worker.util.common.worker.ReadOperation$SynchronizedReaderIterator.start(ReadOperation.java:361)
    org.apache.beam.runners.dataflow.worker.util.common.worker.ReadOperation.runReadLoop(ReadOperation.java:194)
    org.apache.beam.runners.dataflow.worker.util.common.worker.ReadOperation.start(ReadOperation.java:159)
    org.apache.beam.runners.dataflow.worker.util.common.worker.MapTaskExecutor.execute(MapTaskExecutor.java:76)
    org.apache.beam.runners.dataflow.worker.StreamingDataflowWorker.process(StreamingDataflowWorker.java:1228)
    org.apache.beam.runners.dataflow.worker.StreamingDataflowWorker.access$1000(StreamingDataflowWorker.java:143)
    org.apache.beam.runners.dataflow.worker.StreamingDataflowWorker$6.run(StreamingDataflowWorker.java:967)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    java.lang.Thread.run(Thread.java:745)

我在 GKE 上有一个带有 3 个节点的 Kafka 集群。我创建了一个具有复制因子 3 和分区 5 的主题。

kafka-topics --create --zookeeper zookeeper:2181 \
  --replication-factor 3 --partitions 5 --topic topic

我为test_consumer_group消费者组的主题测试设置了读取权限。

kafka-acls --authorizer-properties zookeeper.connect=zookeeper:2181 \
  --add --allow-principal User:CN=myuser.test.io --consumer \
  --topic test --group 'test_consumer_group'

在我的 Apache 梁应用程序中,我设置了配置group.id=test_consumer_group

还使用控制台消费者进行测试,但效果不佳。

$ docker run --rm   -v `pwd`:/cert   confluentinc/cp-kafka:5.1.0 \
  kafka-console-consumer   --bootstrap-server kafka.xx.xx:19092 \
  --topic topic --consumer.config /cert/client-ssl.properties
[2019-03-08 05:43:07,246] WARN [Consumer clientId=consumer-1, groupId=test_consumer_group]
Received unknown topic or partition error in ListOffset request for
partition test-3 (org.apache.kafka.clients.consumer.internals.Fetcher)

标签: apache-kafkatls1.2apache-beamgoogle-kubernetes-engineapache-beam-io

解决方案


似乎是您的卡夫卡读者之间的沟通问题Kafka client may not be able to connect to servers


推荐阅读