如何在Google Dataproc集群中安装和运行pip

时间:2020-01-28 23:29:48

标签: python pip jupyter-notebook google-cloud-dataproc

我使用以下命令在Google DataProc中创建了一个集群:

gcloud beta dataproc clusters create my-cluster \
--project my-project \
--bucket my-bucket \
--region my-region \
--zone my-zone \
--num-workers 5 \
--service-account my-service-account \
--initialization-actions gs://goog-dataproc-initialization-actions-${REGION}/connectors/connectors.sh,gs://goog-dataproc-initialization-actions-${REGION}/datalab/datalab.sh \
--metadata gcs-connector-version=2.0.0 \
--metadata bigquery-connector-version=1.0.0 \
--scopes cloud-platform \
--optional-components=ANACONDA,JUPYTER,ZEPPELIN,PRESTO \
--metadata PIP_PACKAGES=numpy:scipy:pandas:scikit-learn:matplotlib:seaborn \
--image-version=1.4 \
--properties=^#^spark:spark.jars='gs://spark-lib/bigquery/spark-bigquery-latest.jar'#spark:spark.jars.packages='org.apache.spark:spark-avro_2.12:2.4.4'#zeppelin:zeppelin.notebook.gcs.dir="gs://${BUCKET}/notebooks/zeppelin/${CLUSTER_NAME}"#dataproc:jupyter.notebook.gcs.dir="gs://${BUCKET}/notebooks/jupyter/${CLUSTER_NAME}"

我尝试了两种pip方法:

1)通过以下链接将gs://goog-dataproc-initialization-actions-${REGION}/python/pip-install.sh添加到初始化操作:Dataproc python configuration,但是这导致创建集群失败。

错误消息是:Initialization action failed. Failed action 'gs://goog-dataproc-initialization-actions-us-central1/python/pip-install.sh', see output in: gs://my-bucket/google-cloud-dataproc-metainfo/df1234gs-3423-647e-bdf4-dfas1231das/my-cluster-m/dataproc-initialization-script-2_output。如果需要,我可以共享文件。

2)使用上面的命令创建集群。它能够创建集群。奇怪的是,当我登录到主节点并尝试使用pip时,似乎pip命令可用。但是,如果我在Jupyter中运行pip命令,例如pip install --upgrade pip,则在该命令通过时,内核将死机并迭代地重新启动,从而使Jupyter无法使用。

我曾经能够创建集群并在Image 1.4.4、1.9.16的gcs_connector和0.13.16的bq_connector下顺利运行。我不确定挂钩是否有任何更改。任何建议表示赞赏。

1 个答案:

答案 0 :(得分:1)

我在您的命令中将library(purrr) library(dplyr) map(names(df)[1:2], ~ df %>% group_by(country, !! rlang::sym(.x)) %>% summarise(Mean = mean(age), SD = sd(age))) 更改为--metadata PIP_PACKAGES=numpy:scipy:pandas:scikit-learn:matplotlib:seaborn,并能够使用--metadata PIP_PACKAGES="numpy scipy pandas scikit-learn matplotlib seaborn"初始化脚本。