以下是我用来创建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命令。
答案 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
中,这是您进行第二次初始化操作的原因。实际上,即使您运行root
:https://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 ...
。