Простое потоковое приложение Spark без каких-либо значительных вычислений в памяти потребляет 17 ГБ памяти, как только после изменения STATE
на RUNNING
.
Настройка кластера:
- 1x master (2 vCPU, 13,0 ГБ памяти)
- 2х рабочих (2 vCPU, 13,0 ГБ памяти)
Диспетчер ресурсов YARN отображает: Mem Total - 18 ГБ, vCore Total - 4
Исходный код Spark Streaming App можно найти здесь, и, как вы можете видеть, он мало что делает:
Команда Spark submit (через SSH не GCLOUD SDK):
spark-submit --master yarn \
--deploy-mode cluster \
--num-executors 1 \
--driver-cores 1 \
--executor-memory 1g \
--driver-memory 512m \
--executor-cores 1 \
--class JavaCustomReceiver my_project.jar
Почему такое простое приложение выделяет столько памяти?
Я использую конфигурацию GCP Dataproc по умолчанию, есть ли какие-либо настройки YARN, которые следует изменить?