Невозможно запустить Spark Cluster в Google DataProc

Я запускаю 6-узловый спарк-кластер в Google Data Proc, и в течение нескольких минут после запуска спарка и выполнения основных операций я получаю следующую ошибку

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000fbe00000, 24641536, 0) failed; error='Cannot allocate memory' (errno=12)
There is insufficient memory for the Java Runtime Environment to continue.
Native memory allocation (mmap) failed to map 24641536 bytes for committing reserved memory.
An error report file with more information is saved as:/home/chris/hs_err_pid21047.log

Я выполнил только две команды:

data = (
     spark.read.format("text")
    .option("header", "true")
    .option("inferSchema", "true")
    .load("gs://bucketpath/csv")
)
data.show()

CSV-файл хранится в хранилище Google, а его размер составляет 170 МБ.

Ниже приведена подробная информация о конфигурации моего кластера.

Name    cluster
Region  australia-southeast1
Zone    australia-southeast1-b
Master node 
Machine type    n1-highcpu-4 (4 vCPU, 3.60 GB memory)
Primary disk type   pd-standard
Primary disk size   50 GB
Worker nodes    5
Machine type    n1-highcpu-4 (4 vCPU, 3.60 GB memory)
Primary disk type   pd-standard
Primary disk size   15 GB
Local SSDs  0
Preemptible worker nodes    0
Cloud Storage staging bucket    dataproc-78f5e64b-a26d-4fe4-bcf9-e1b894db9d8f-au-southeast1
Subnetwork  default
Network tags    None
Internal IP only    No
Image version   1.3.14-deb8

Это выглядело как проблема с памятью, поэтому я попытался изменить тип машины на n1-highcpu-8 (8 vCPU, 7,2 ГБ памяти), однако я не могу запустить запись экземпляров, так как я получаю следующую ошибку

Quota 'CPUS' exceeded. Limit: 24.0 in region australia-southeast1.

Поэтому я не уверен, что нужно сделать, чтобы решить эту проблему. Я очень новичок в Google Cloud Platform и буду очень признателен за любую помощь, чтобы решить эту проблему. Это для супер критического проекта

1 ответ

Решение

В соответствии с ошибкой, вы достигли предела квоты CPU для вашего региона GCP - australia-southeast1. У вас есть как минимум два варианта -

  1. Запросите увеличение квоты для процессоров вычислительных движков. Посетите страницу квот в IAM, выберите свой регион под местоположением, выберите "ЦП API Compute Engine" и нажмите "Изменить квоту", чтобы запросить увеличение.

    Прямая ссылка (пожалуйста, измените "YOUR-GCP-PROJECT-ID") - https://console.cloud.google.com/iam-admin/quotas?project=YOUR-GCP-PROJECT-ID&location=australia-southeast1

  2. Создайте кластер dataproc с меньшим количеством рабочих узлов ИЛИ с небольшими типами машин vCPU. Если стандартные типы машин не соответствуют вашим требованиям, попробуйте нестандартные типы машин.

Вы также можете проверить ограничение квоты ЦП с помощью инструмента gcloud cli -

$ gcloud compute regions list --filter='name=australia-southeast1' NAME CPUS DISKS_GB ADDRESSES RESERVED_ADDRESSES STATUS TURNDOWN_DATE australia-southeast1 0/8 0/2048 0/8 0/1 UP

Другие вопросы по тегам