python - 在 apache beam DirectRunner 中使用 KafkaIO 时出错

标签 python ubuntu apache-kafka apache-beam apache-beam-io

我正在使用 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/

相关文章:

java - 关注 JTextField 的问题

python - 无法安装 psycopg2 Ubuntu

apache-kafka - 卡夫卡处理器 API : Different key for Source and StateStore?

python - Python 类析构函数是否保证在程序结束前执行?

Python:来自 2D 图像的 3D 轮廓 - pylab 和 contourf

javascript - Django 和 Dropzone.js

java - 如何使用 kafka 模式管理和 Avro 进行重大更改

python - Seaborn 中条形图和误差线的美观

bash - GNU Coreutil Date(在 CLI 中输出数字,但不在 bash 脚本中)

java - 从java程序远程执行kafka sh脚本