繁体   English   中英

Apache Beam:错误同步 pod:在 $PATH 中找不到可执行文件

[英]Apache Beam: error syncing pod: executable file not found in $PATH

这是与此处相同的问题。 现在正在寻找解决方案,而不是如何找到更详细的日志。 我能够找到日志,但最相关的似乎是executable file not found in $PATH

设置

我目前有

  • python中的基本apache梁流水线
  • 正在为管道环境构建一个 SDK 图像。 使用 Dockerfile 和使用诗歌管理的依赖项。
    • Docker 基本图像是apache/beam_python3.8_sdk:2.32.0
    • 在我的项目和我的 SDK 容器中使用 apache-beam 版本 2.30.0

使用以下命令通过 CircleCI 进行部署:

python3.8 src/ingest/main.py \
  --project=<<parameters.project_id>> \
  --region=<<parameters.region>> \
  --input_subscription=<subscription_name> \
  --runner=DataflowRunner \
  --temp_location=gs://<<parameters.dataflow_bucket>>/temp \
  --template_location=gs://<template_location> \
  --service_account_email=<<parameters.service_account_email>> \
  --sdk_container_image=<sdk_image>

问题

数据流作业部署成功,可以在 GCP 控制台中找到。 但是,当启动一个 worker 时,出现以下错误:

"Error syncing pod <id> ("<pod_name>"), skipping: [failed to "StartContainer" for "sdk0"
with RunContainerError: "failed to start container \"<hash>\": Error response from daemon: OCI runtime 
create failed: container_linux.go:380: starting container process caused: 
exec: \"--logging_endpoint=localhost:12370\": executable file not found in $PATH: unknown", failed to 
"StartContainer" for "sdk1" with RunContainerError: "failed to start container \"<hash>\": Error response 
from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: 
exec: \"--logging_endpoint=localhost:12370\": executable file not found in $PATH: unknown"]"

思绪

我们在另一个似乎运行良好的项目中使用了完全相同的方法。

该错误令人困惑,因为我使用预构建图像作为 SDK ( apache/beam_python3.8_sdk:2.32.0 ) 的基本图像,它设置了 ENTRYPOINT 本身:

ENTRYPOINT ["/opt/apache/beam/boot"]

我想也许 PATH 环境变量中缺少上述路径,所以我什至尝试手动添加它

ENV PATH="/opt/apache/beam:$PATH"

没有运气

您是否有任何外部依赖项,因为在我的情况下,外部依赖项冲突导致了同样的问题。 解决依赖冲突为我解决了这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM