Apache Beam:同步 pod 时出错 - 在 $PATH 中找不到可执行文件
Apache Beam: Error syncing pod - executable file not found in $PATH
设置
我目前有
- python
中的基本 Apache Beam 管道
- 正在为管道环境构建 SDK 映像。使用 Docker 文件和使用诗歌管理的依赖项。
- 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"]"
想法
我们正在另一个项目中使用完全相同的方法,它似乎运行良好。
我看过
executable file not found in $PATH
在 docker 之前,想了解如何在 GCP 中查看 docker 特定日志以帮助进行故障排除。
目前,要查看日志,我在 Dataflow 控制台中单击错误消息,这会将我带到错误报告页面。
从那里我点击 View Logs
将我带到 Logs Explorer
我在找什么
- 如果可能,如何找到 docker 特定(或至少更详细)的日志。
- 对正在发生的事情的任何洞察力。
我是 Dataflow 的新手,所以希望我只是错过了一些简单的东西。如果您需要更多信息,请告诉我。
要在 Google Cloud Console 中查看 Dataflow Docker 特定日志,您可以执行以下操作。
- 在 Dataflow 作业视图中,单击 Worker Logs,然后单击 View logs in Explorer
- 单击查询文本框以编辑查询。
- 单击日志名称和select Docker
设置
我目前有
- python 中的基本 Apache Beam 管道
- 正在为管道环境构建 SDK 映像。使用 Docker 文件和使用诗歌管理的依赖项。
- Docker 基本图像是
apache/beam_python3.8_sdk:2.32.0
- 在我的项目和我的 SDK 容器中使用 apache-beam 版本 2.30.0
- Docker 基本图像是
使用以下方法通过 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"]"
想法
我们正在另一个项目中使用完全相同的方法,它似乎运行良好。
我看过
executable file not found in $PATH
在 docker 之前,想了解如何在 GCP 中查看 docker 特定日志以帮助进行故障排除。
目前,要查看日志,我在 Dataflow 控制台中单击错误消息,这会将我带到错误报告页面。
从那里我点击 View Logs
将我带到 Logs Explorer
我在找什么
- 如果可能,如何找到 docker 特定(或至少更详细)的日志。
- 对正在发生的事情的任何洞察力。
我是 Dataflow 的新手,所以希望我只是错过了一些简单的东西。如果您需要更多信息,请告诉我。
要在 Google Cloud Console 中查看 Dataflow Docker 特定日志,您可以执行以下操作。
- 在 Dataflow 作业视图中,单击 Worker Logs,然后单击 View logs in Explorer
- 单击查询文本框以编辑查询。
- 单击日志名称和select Docker