Как сохранить мастер Google Dataproc в работе? - PullRequest
1 голос
/ 09 апреля 2019

Я создал кластер на Dataproc, и он прекрасно работает. Однако после некоторого простоя кластера (~ 90 минут) мастер-узел автоматически останавливается. Это происходит с каждым кластером, который я создал. Я вижу, что здесь есть похожий вопрос: Продолжить работу главного узла Dataproc

Похоже, это проблема с действием инициализации. Однако сообщение не дает мне достаточно информации, чтобы исправить проблему. Ниже приведены команды, которые я использовал для создания кластера:

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 Ответ

2 голосов
/ 10 апреля 2019

Как показано в ветке комментариев, это действительно вызвано функцией автоматического выключения *1002* Datalab.Есть несколько способов изменить это поведение:

  1. После первого создания кластера Dataproc с поддержкой Datalab войдите в Datalab и нажмите на текст «Idle timeout about ...», чтобы отключить его.: 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 one.Может также стоить зарегистрировать проблему отслеживания в репозитории github для действий инициализации dataproc, предлагая отключить тайм-аут по умолчанию или предоставить простую опцию на основе метаданных.Вероятно, верно, что поведение автоматического выключения не соответствует ожидаемому при использовании по умолчанию в кластере Dataproc, поскольку мастер также выполняет роли, отличные от запуска службы Datalab.

...