使用多个初始化脚本时,找不到Dataproc初始化脚本错误pip命令错误

时间:2018-09-11 22:35:57

标签: google-cloud-dataproc

以下是我用来创建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命令。

2 个答案:

答案 0 :(得分:1)

我认为这是一个问题,其中init操作没有看到先前init操作对环境的更改。我们将在接下来的几周内针对此问题推出修复程序,因此此后无需采购profile.d。这将在release notes中宣布。

同时(如@Karthik Palaniappan所述,只需在其完整路径/opt/conda/bin/pip上使用pip。

最后,在Dataproc 1.3图像上,可以使用Anaconda + Jupyter Optional Components。通过init操作使用组件将减少总体群集启动时间。

答案 1 :(得分:0)

是的,这是因为pip/opt/conda/bin/中的其他任何内容都不在$PATH中,这是您进行第二次初始化操作的原因。实际上,即使您运行roothttps://github.com/GoogleCloudPlatform/dataproc-initialization-actions/issues/246,他们也不会最终到达sudo su root用户的路径。

如果您有兴趣解决此问题,很高兴接受PR。只是作为起点:bootstrap-conda.sh设置了/etc/profile.d/conda.sh here

和其他脚本source that file明确。

除非有一种简单的方法可以在系统范围内更改$PATH,否则我认为最好的选择是也显式地获取/etc/profile.d/conda.sh

或者,以其绝对路径运行pip,例如/opt/conda/bin/pip install ...