如何保持Google Dataproc master运行?

时间:2019-04-09 01:07:12

标签: google-cloud-platform google-cloud-dataproc google-cloud-datalab

我在Dataproc上创建了一个集群,并且效果很好。但是,在群集闲置一段时间(约90分钟)后,主节点将自动停止。我创建的每个群集都会发生这种情况。我看到这里有一个类似的问题:Keep running Dataproc Master node

似乎是初始化操作问题。但是,该帖子没有给我足够的信息来解决问题。以下是我用来创建集群的命令:

gcloud dataproc clusters create $CLUSTER_NAME \
    --project $PROJECT \
    --bucket $BUCKET \
    --region $REGION \
    --zone $ZONE \
    --master-machine-type $MASTER_MACHINE_TYPE \
    --master-boot-disk-size $MASTER_DISK_SIZE \
    --worker-boot-disk-size $WORKER_DISK_SIZE \
    --num-workers=$NUM_WORKERS \
    --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 \
    --metadata JUPYTER_CONDA_PACKAGES=numpy:scipy:pandas:scikit-learn \
    --optional-components=ANACONDA,JUPYTER \
    --image-version=1.3

我的集群需要BigQuery连接器,GCS连接器,Jupyter和DataLab。

如何使主节点保持运行状态?谢谢。

1 个答案:

答案 0 :(得分:2)

正如注释线程中所总结的,这确实是由Datalab的auto-shutdown feature引起的。有两种方法可以更改此行为:

  1. 首先创建启用了Datalab的Dataproc群集,然后登录到Datalab并单击“空闲超时约...”文本以将其禁用:https://cloud.google.com/datalab/docs/concepts/auto-shutdown#disabling_the_auto_shutdown_timer-该文本将更改为“空闲超时为禁用”
  2. 按照yelsayed的建议编辑初始化操作以设置环境变量:

    function run_datalab(){
      if docker run -d --restart always --net=host -e "DATALAB_DISABLE_IDLE_TIMEOUT_PROCESS=true" \
          -v "${DATALAB_DIR}:/content/datalab" ${VOLUME_FLAGS} datalab-pyspark; then
        echo 'Cloud Datalab Jupyter server successfully deployed.'
      else
        err 'Failed to run Cloud Datalab'
      fi
    }
    

并使用您的自定义初始化操作代替库存gs:// dataproc-initialization-actions之一。可能也值得在github存储库中针对dataproc初始化操作提交跟踪问题,建议默认情况下禁用超时或提供简单的基于元数据的选项。可能的事实是,自动关闭行为与Dataproc群集的默认用法不同,因为主服务器还执行除运行Datalab服务以外的其他角色。