kubernetes - 如果 .computed 被唤起,Kubernetes\Dask 上的 Xarray (rasterio) 无法找到路径
问题描述
在 GC 上,我使用 HELM 和 stable/dask 存储库部署了 dask。
一旦运行并通过 config.yaml 文件添加了 Xarray 和 Rasterio,我就可以使用 xarray.open_rasterio('...') 读取文件。
如果我尝试在对象上调用 .compute() ,则会收到错误消息,指出 rasterio 已创建 IOError,因为没有找到此类文件。我是第一次发生在我身上
在这里复制的是我的 config.yaml
worker:
replicas: 3
env:
- name: EXTRA_APT_PACKAGES
value : libzstd1
- name: EXTRA_CONDA_PACKAGES
value: numpy pandas scipy rasterio xarray matplotlib netcdf4 nomkl statsmodels numba gcsfs pyhdf -c conda-forge
- name: EXTRA_PIP_PACKAGES
value: git+https://github.com/PhenoloBoy/FenicePhenolo
jupyter:
enabled: true
env:
- name: EXTRA_APT_PACKAGES
value : apt-utils libzstd1
- name: EXTRA_CONDA_PACKAGES
value: numpy pandas scipy rasterio xarray matplotlib netcdf4 nomkl statsmodels numba gcsfs pyhdf -c conda-forge
- name: EXTRA_PIP_PACKAGES
value: git+https://github.com/PhenoloBoy/FenicePhenolo
这里的脚本
import xarray as xr
from distributed import Client
client = Client()
data = xr.open_rasterio('file.img', chunks=(..,..,..))
data.compute()
解决方案
听起来您的 dask 工作人员无法访问与您的客户端相同的文件系统。
详细地说,您首先从客户端大小中找到文件列表,并获取一些元数据。然后您使用工作人员实际加载块,因此他们必须能够看到完全相同的文件。您必须有一些共享文件系统,或者引用外部存储,例如 s3/gcs。
推荐阅读
- python - 多类分类器的增量或在线学习
- asp.net - 为什么我的 nodejs 应用程序的会话在 Windows 服务器上的 40 秒内到期
- ios - 如何快速在动态表视图中创建动态表视图?
- vhdl - VHDL:将大向量与值进行比较并赋值
- swift - 没有得到正确的裁剪图像?
- javascript - 如何删除 componentWillUnmount() 中的函数调用?
- asp.net-core - ASP.NET Core:如何将 RazorPage 应用程序的控制器用作访问相同数据的移动应用程序的后端?
- python - 如何安装 optparse 模块?
- android - 以编程方式为自定义视图设置形状颜色
- javascript - Javascript 使用 window.innerWidth 和 window.innerHeight 缩放页面内容