我使用以下命令在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
下顺利运行。我不确定挂钩是否有任何更改。任何建议表示赞赏。
答案 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"
初始化脚本。