【问题标题】:Why can't I create a Google DataProc cluster with both Jupyter and DataLab installed?为什么我无法创建同时安装了 Jupyter 和 DataLab 的 Google DataProc 集群?
【发布时间】:2019-08-27 00:23:03
【问题描述】:

我想在安装了 Jupyter 和 DataLab 的 DataProc 中创建一个集群(我知道它们非常相似,但团队成员有不同的偏好)。我可以用它们中的任何一个创建集群:

Jupyter 集群:

gcloud dataproc clusters create $DATAPROC_CLUSTER_NAME_JUPYTER \
--project $PROJECT \
--bucket $BUCKET \
--zone $ZONE \
--initialization-actions gs://dataproc-initialization-actions/connectors/connectors.sh,gs://dataproc-initialization-actions/jupyter/jupyter.sh \
--metadata gcs-connector-version=$GCS_CONNECTOR_VERSION \
--metadata bigquery-connector-version=$BQ_CONNECTOR_VERSION \
--metadata JUPYTER_PORT=$JUPYTER_PORT,JUPYTER_CONDA_PACKAGES=numpy:scipy:pandas:scikit-learn

带有 DataLab 的集群:

gcloud dataproc clusters create $DATAPROC_CLUSTER_NAME_DATALAB \
--project $PROJECT \
--bucket $BUCKET \
--zone $ZONE \
--master-boot-disk-size $MASTER_DISK_SIZE \
--worker-boot-disk-size $WORKER_DISK_SIZE \
--initialization-actions gs://dataproc-initialization-actions/connectors/connectors.sh,gs://dataproc-initialization-actions/datalab/datalab.sh \
--metadata gcs-connector-version=$GCS_CONNECTOR_VERSION \
--metadata bigquery-connector-version=$BQ_CONNECTOR_VERSION \
--scopes cloud-platform,bigquery

两者都运行良好。但是,当我尝试用它们创建一个集群时,它失败了:

gcloud dataproc clusters create test \
--project $PROJECT \
--bucket $BUCKET \
--zone $ZONE \
--initialization-actions gs://dataproc-initialization-actions/connectors/connectors.sh,gs://dataproc-initialization-actions/datalab/datalab.sh,gs://dataproc-initialization-actions/jupyter/jupyter.sh \
--metadata gcs-connector-version=$GCS_CONNECTOR_VERSION \
--metadata bigquery-connector-version=$BQ_CONNECTOR_VERSION \
--metadata JUPYTER_PORT=$JUPYTER_PORT,JUPYTER_CONDA_PACKAGES=numpy:scipy:pandas:scikit-learn \
--scopes cloud-platform,bigquery

错误信息是:

ERROR: (gcloud.dataproc.clusters.create) Operation [projects/abc/regions/global/operations/d34943dc-5bda-386f-af91-db6e0516e2c5] failed: Multiple Errors:
 - Initialization action failed. Failed action 'gs://dataproc-initialization-actions/jupyter/jupyter.sh', see output in: gs://abc/google-cloud-dataproc-metainfo/266175ef-e595-4732-b351-335837a3f30e/test-m/dataproc-initialization-script-2_output
 - Initialization action failed. Failed action 'gs://dataproc-initialization-actions/jupyter/jupyter.sh', see output in: gs://abc/google-cloud-dataproc-metainfo/266175ef-e595-4732-b351-335837a3f30e/test-w-0/dataproc-initialization-script-2_output
 - Initialization action failed. Failed action 'gs://dataproc-initialization-actions/jupyter/jupyter.sh', see output in: gs://abc/google-cloud-dataproc-metainfo/266175ef-e595-4732-b351-335837a3f30e/test-w-1/dataproc-initialization-script-2_output.

test-m 中的文件如下所示:

++ /usr/share/google/get_metadata_value attributes/dataproc-role
+ readonly ROLE=Worker
+ ROLE=Worker
++ /usr/share/google/get_metadata_value attributes/INIT_ACTIONS_REPO
++ echo https://github.com/GoogleCloudPlatform/dataproc-initialization-actions.git
+ readonly INIT_ACTIONS_REPO=https://github.com/GoogleCloudPlatform/dataproc-initialization-actions.git
+ INIT_ACTIONS_REPO=https://github.com/GoogleCloudPlatform/dataproc-initialization-actions.git
++ /usr/share/google/get_metadata_value attributes/INIT_ACTIONS_BRANCH
++ echo master
+ readonly INIT_ACTIONS_BRANCH=master
+ INIT_ACTIONS_BRANCH=master
++ /usr/share/google/get_metadata_value attributes/JUPYTER_CONDA_CHANNELS
+ readonly JUPYTER_CONDA_CHANNELS=
+ JUPYTER_CONDA_CHANNELS=
++ /usr/share/google/get_metadata_value attributes/JUPYTER_CONDA_PACKAGES
+ readonly JUPYTER_CONDA_PACKAGES=numpy:scipy:pandas:scikit-learn
+ JUPYTER_CONDA_PACKAGES=numpy:scipy:pandas:scikit-learn
+ echo 'Cloning fresh dataproc-initialization-actions from repo https://github.com/GoogleCloudPlatform/dataproc-initialization-actions.git and branch master...'
Cloning fresh dataproc-initialization-actions from repo https://github.com/GoogleCloudPlatform/dataproc-initialization-actions.git and branch master...
+ git clone -b master --single-branch https://github.com/GoogleCloudPlatform/dataproc-initialization-actions.git
fatal: destination path 'dataproc-initialization-actions' already exists and is not an empty directory.

看起来有一个克隆步骤会阻止安装成功。我该如何解决这个问题?感谢您的任何建议,谢谢。

【问题讨论】:

    标签: jupyter-notebook google-cloud-dataproc google-cloud-datalab


    【解决方案1】:

    这似乎是初始化操作中的一个错误,我们不能两次 git clone 存储库。我们会解决这个问题。

    同时,您可以尝试使用 Jupyter optional component 来代替 datalab 初始化操作。

    【讨论】:

    • 谢谢。但是,当我将 `--optional-components=JUPYTER \ --image-version=1.3 ` 添加到第二行时,它给了我错误: ERROR: (gcloud.dataproc.clusters.create) unrecognized arguments: --optional -组件=JUPYTER。我一直对 --optional-components 有问题。 (我的镜像版本是debian 1.3。)我该如何处理呢?
    • 看来您可能需要通过 gcloud components update 将 gcloud 更新到至少版本 238.0.0
    • 如果您使用 gcloud beta dataproc,那么您可以将 Jupyter 组件与 Component Gateway 一起使用,并且无需 SSH 隧道即可访问 Jupyter UI。
    • 我试过gcloud beta dataproc命令,可以成功创建集群。但是,当我使用 gcloud beta dataproc clusters describe cluster-name 并复制 Jupyter 或 JupyterLab 的 url 时,它无法在 Chrome 中访问(始终出现错误 504)。我该如何解决这个问题?
    • 您介意使用您的集群区域、集群名称和 projectId 联系 dataproc-feedback [at] google.com,以便我们仔细查看吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 2020-05-14
    • 2018-10-21
    • 2022-01-14
    • 2017-09-10
    • 2017-02-16
    相关资源
    最近更新 更多