【发布时间】:2021-11-20 09:54:41
【问题描述】:
您好,我正在尝试运行一项作业,以使用数据流从托管在 GCP 外部的 kafka 读取一些事件,该作业在 VPC 网络上运行。
问题是 kafka 被配置为使用主机名而不是 IP 来回答,因此在引导程序中指定 ip 会导致在数据流上运行作业时无法连接到目标节点。
Reader-1: Timeout while initializing partition 'placeholder'. Kafka client may not be able to connect to servers.
另一方面,如果我使用 kafka 创建 VM 并在 etc/host 中指定映射主机名-ip,我可以正确使用。
为了使其在 Dataflow 上运行,我尝试使用 DNS name = . 创建私有云 DNS,这允许我创建可以将每个条目中的主机映射到 DNS name = nodename1. 到 data = IP1 的区域。
这似乎可行,因为我可以在我没有在 etc/host 中指定映射的 VM 上 telnet nodename1。
但是,工作一开始就卡住了,我得到的唯一错误是:
"Timeout in polling result file: gs://placeholder/staging,zone=europe-central2-a/template_launches/2021-09-28_01_43_38-12780367774525067695/operation_result.
Possible causes are:
1. Your launch takes too long time to finish. Please check the logs on stackdriver.
2. Service account placeholder@placeholder may not have enough permissions to pull container image gcr.io/dataflow-templates/2021-09-20-00_rc00/kafka-to-bigquery or create new objects in gs://placeholder.
3. Transient errors occurred, please try again."
有没有一种简单的方法可以将主机映射到数据流中的作业的 ip?
【问题讨论】:
-
这个问题缺少很多细节。您是否阅读过官方文档 - Using Cloud Dataflow to Process Outside-Hosted Messages from Kafka 并创建了两个监听器,一个
EXTERNAL使用Public IP,INTERNAL使用Private IP?您是否也正确配置了防火墙? -
是的,我认为防火墙不是问题,至少在安装了 kafka 的计算引擎上尝试使用来自 VM 的消息时我没有任何问题(我只有 DataFlow 有问题)。如果还有其他我可能需要配置的东西,请告诉我。我阅读了官方文档,但我不明白这是否有助于我映射主机 IP,如果可以,我应该将这些信息放在哪里,以及如何以及在哪里编辑配置文件
server.properties在数据流作业中?
标签: google-cloud-platform apache-kafka google-cloud-dataflow google-cloud-networking google-vpc