使用数据流Kafka到bigquery模板时出错

问题描述 投票:0回答:3

我正在使用数据流 kafka 到 bigquery 模板。启动数据流作业后,它会在队列中停留一段时间,然后失败并出现以下错误:

Error occurred in the launcher container: Template launch failed. See console logs.

查看日志时,我看到以下堆栈跟踪:

at org.apache.beam.runners.dataflow.DataflowRunner.run(DataflowRunner.java:192) 
at org.apache.beam.sdk.Pipeline.run(Pipeline.java:317) 
at org.apache.beam.sdk.Pipeline.run(Pipeline.java:303) 
at com.google.cloud.teleport.v2.templates.KafkaToBigQuery.run(KafkaToBigQuery.java:343) 
at com.google.cloud.teleport.v2.templates.KafkaToBigQuery.main(KafkaToBigQuery.java:222) 
Caused by: org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata –

在启动作业时,我提供了以下参数:

  1. kafka主题名称
  2. 引导服务器名称
  3. bigquery 主题名称
  4. SA 电子邮件
  5. 区。

我的kafka主题仅包含消息:你好

kafka 安装在 gcp 实例中,该实例与数据流工作线程位于同一区域和子网中。

google-cloud-platform apache-kafka google-cloud-dataflow dataflow
3个回答
5
投票

在此添加此内容作为后代的答案:

“获取主题元数据时超时”表示 Kafka 客户端无法连接到代理来获取元数据。这可能是由于各种原因造成的,例如工作虚拟机无法与代理通信(您是通过公共 IP 还是私有 IP 进行通信?如果使用公共 IP,请检查传入防火墙设置)。这也可能是由于端口不正确或代理需要 SSL 连接造成的。一种确认方法是在与 Dataflow Worker 位于同一子网的 GCE VM 上安装 Kafka 客户端,然后验证 Kafka 客户端是否可以连接到 Kafka 代理。

参考[1]配置Kafka客户端的ssl设置(您可以在GCE实例上使用cli进行测试)。管理代理的团队可以告诉您他们是否需要 SSL 连接。

[1] https://docs.confluence.io/platform/current/kafka/authentication_ssl.html#clients


0
投票

嘿谢谢大家的帮助,我正在尝试使用内部IP访问kafka。当我将其设置为公共IP时,它起作用了。实际上,我在同一子网中运行卡夫卡机器和工作人员。所以它也应该适用于内部IP...我现在正在检查


-1
投票

您如何将 security.protocol=SSL 和凭据传递给数据流模板?

© www.soinside.com 2019 - 2024. All rights reserved.