以下是我用来创建dataproc集群的命令。这里有两个初始化脚本。(1(jupyter.sh
(2(my_initialize.sh
gcloud dataproc clusters create dproc
--subnet default --zone us-west1-a --project myproject
--initialization-actions gs://dataproc-initialization-actions/jupyter/jupyter.sh,gs://mydataproc/my_initialize.sh
--master-machine-type n1-standard-8 --master-boot-disk-size 40
--worker-machine-type n1-standard-8 --worker-boot-disk-size 40 --num-workers 4
以下是my_initialize.sh
#!/usr/bin/env bash
pip install --upgrade google-cloud-bigquery
当我们安装 jupyter.sh 时,我相信 pip 已经安装了。
由于某种原因,群集创建失败,错误为 第 2 行:找不到 pip 命令。
我相信这是一个问题,其中 init 操作没有看到以前的 init 操作对环境的变化。我们将在未来几周内为此推出修复程序,因此在此之后不需要采购profile.d
。这将在发行说明中公布。
同时(正如@Karthik Palaniappan 提到的,只需按其完整路径/opt/conda/bin/pip
使用 pip 即可。
最后,在 Dataproc1.3
映像上,您可以使用 Anaconda+Jupyter 可选组件。使用组件而不是初始化操作将减少整体群集启动时间。
是的,这是因为pip
和/opt/conda/bin/
中的其他任何东西都没有为您的第二个初始化操作$PATH
。事实上,即使您运行sudo su root
: https://github.com/GoogleCloudPlatform/dataproc-initialization-actions/issues/246,它们也不会最终出现在root
用户的路径上。
如果您有兴趣解决这个问题,我很乐意接受 PR。作为起点:bootstrap-conda.sh
在这里设置/etc/profile.d/conda.sh
。
和其他脚本显式获取该文件。
除非有一种简单的方法可以在系统范围内更改$PATH
,否则我认为最好的选择是明确获取/etc/profile.d/conda.sh
。
或者,使用其绝对路径运行pip
,例如/opt/conda/bin/pip install ...
.