Spark on YARN - Невозможно выделить контейнеры, поскольку запрошенный ресурс превышает максимально допустимое выделение.
Ошибка : приложение YARN неожиданно завершило работу с состоянием FAILED! Дополнительные сведения см. В журналах приложения YARN. 2021-10-12 15:15:30201 Диагностическое сообщение: Неперехваченное исключение: org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException: недопустимый запрос ресурса! Невозможно выделить контейнеры, поскольку запрошенный ресурс превышает максимально допустимое выделение. Запрошенный тип ресурса =[виртуальных ядер], запрошенный ресурс =<память: 7296, виртуальных ядер: 7>, максимально допустимое выделение =<память: 12288, виртуальных ядер: 4>, обратите внимание, что максимально допустимое выделение рассчитывается планировщиком на основе максимального ресурса зарегистрированных NodeManager, которые могут быть меньше настроенного максимального выделения =<memory: 12288, vCores: 128>
Описание ошибок:
Я столкнулся с вышеуказанной проблемой, когда выполнял ту же самую искру-отправку в среде AWS, но эта проблема не возникла, когда я выполнял искру-отправку локально.
Решения:
Я удалил конфигурацию ресурса из spark-submit.
Образец искрового представления:
spark-submit --packages com.databricks:spark-csv_2.11:1.2.0,com.Typesafe: config: 1.3.2 --name xyz--class main layer.SparkSessionTest "/opt/code/ReportGenerations-1.0-SNAPSHOT.jar" "/opt/code/ReportGeneration.properties" "/opt/code/log4j.properties"
1 ответ
Ошибка четко указывает на то, что количество ресурсов, которые вы пытаетесь выделить для своих исполнителей, слишком велико для узлов в вашем кластере пряжи. В вашем конкретном случае кластер настроен так, чтобы иметь 4 ядра в каждом узле, в то время как вы пытаетесь выделить исполнителей с 7 ядрами.
Чтобы решить эту проблему, попробуйте уменьшить количество ядер для каждого исполнителя, используя следующую конфигурацию, предоставленную как флаг в команде spark-submit:
--executor-cores 2
Итак, искра-отправка будет:
spark-submit --executor-cores 2 --packages com.databricks:spark-csv_2.11:1.2.0,com.Typesafe: config: 1.3.2 --name xyz--class main layer.SparkSessionTest "/opt/code/ReportGenerations-1.0-SNAPSHOT.jar" "/opt/code/ReportGeneration.properties" "/opt/code/log4j.properties"
Обратите внимание, что 2 - это всего лишь пример. Максимальное количество ядер, которое вы можете выделить, - 4.