我正在使用dataflowkafka来创建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 –
在启动作业时,我提供了以下参数:
Kafka主题名
引导服务器名称
bigquery主题名称
sa电子邮件
区域。
我的Kafka主题只有康塔尼斯信息:你好
kafka安装在与dataflow worker位于同一区域和子网的gcp示例中。
2条答案
按热度按时间yfjy0ee71#
嘿,谢谢你们的帮助,我想用内部ip访问Kafka。当我把它连接到公共ip时,它就起作用了。实际上,我在同一个子网中运行Kafka机器和工人。所以它也应该和内部ip一起工作。。。我正在检查
9udxz4iz2#
在这里加上这句话作为后人的回答:
“获取主题元数据时超时”表示kafka客户端无法连接到代理获取元数据。这可能是由于各种原因造成的,例如工作vm无法与代理对话(您是通过公共还是私有ip进行对话?如果使用公共IP,请检查传入防火墙设置。这也可能是由于不正确的端口或由于需要ssl连接的代理。一种确认方法是将kafka客户端安装在与dataflow worker位于同一子网的gce vm上,然后验证kafka客户端是否可以连接到kafka代理。
请参阅[1]以配置kafka客户端的ssl设置(您可以在gce示例上使用cli进行测试)。管理代理的团队可以告诉您他们是否需要ssl连接。
[1] https://docs.confluent.io/platform/current/kafka/authentication_ssl.html#clients