我正在使用 apache beam DirectRunner 从 kafka 主题加载数据。我的代码如下:
conf={'bootstrap.servers':'localhost:9092'}
with beam.Pipeline() as pipeline:
(pipeline
| ReadFromKafka(consumer_config=conf,topics=['topic1'])
)
我正在使用以下命令来运行此代码:
python3 topic_to_gcs --runner DirectRunner
出现以下错误:
File "/usr/lib/python3.7/subprocess.py", line 1522, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'docker': 'docker'
提前致谢:)
最佳答案
目前,Apache Beam 使用所谓的外部转换在 Python SDK 中从 Kafka 读取数据。它实际上意味着,您的 Python Pipeline 将生成一个 Java 容器并从容器内部连接到 Kafka。然后它将把数据传回您的 Python Pipeline(更多关于此 here )。
如果您可以在运行管道的主机上安装 docker(以及您计划运行管道的所有其他位置,如果您将运行器从 DirectRunner 更改为某种分布式运行器),那么这将是最佳选择走吧。
否则您可以在我的回答 here 中了解当前状态.
关于python - 在 apache beam DirectRunner 中使用 KafkaIO 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62782455/