如何在 Google Dataproc 集群中安装和 运行 pip
How to install and run pip in Google Dataproc cluster
我使用以下命令在 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
添加到初始化操作,在 link: 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) 使用上面的命令创建集群。它能够创建集群。 St运行gely,当我登录主节点并尝试pip时,似乎可以使用pip命令。但是,如果我在 Jupyter 中 运行 pip 命令,例如 pip install --upgrade pip
,当命令执行时,内核会死机并反复重启,使 Jupyter 无法使用。
我以前用Image 1.4.4、gcs_connector
of 1.9.16和bq_connector
of 0.13.16可以顺利创建集群和运行。我不确定钩子下是否有任何变化。任何建议表示赞赏。
我在您的命令中将 --metadata PIP_PACKAGES=numpy:scipy:pandas:scikit-learn:matplotlib:seaborn
更改为 --metadata PIP_PACKAGES="numpy scipy pandas scikit-learn matplotlib seaborn"
,并且能够使用 pip-install.sh
初始化脚本。
我使用以下命令在 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
添加到初始化操作,在 link: 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) 使用上面的命令创建集群。它能够创建集群。 St运行gely,当我登录主节点并尝试pip时,似乎可以使用pip命令。但是,如果我在 Jupyter 中 运行 pip 命令,例如 pip install --upgrade pip
,当命令执行时,内核会死机并反复重启,使 Jupyter 无法使用。
我以前用Image 1.4.4、gcs_connector
of 1.9.16和bq_connector
of 0.13.16可以顺利创建集群和运行。我不确定钩子下是否有任何变化。任何建议表示赞赏。
我在您的命令中将 --metadata PIP_PACKAGES=numpy:scipy:pandas:scikit-learn:matplotlib:seaborn
更改为 --metadata PIP_PACKAGES="numpy scipy pandas scikit-learn matplotlib seaborn"
,并且能够使用 pip-install.sh
初始化脚本。