2016-11-01 3 views
1

Я использую Spark на Hadoop и хочу знать, как Spark выделяет виртуальную память исполнителю.Как вычисляется виртуальная память в Spark?

В соответствии с YARN vmem-pmem он предоставляет виртуальную память в 2.1 раза.

Следовательно - если XMX 1   ГБ затем -> 1 ГБ * 2.1 = 2.1   ГБ выделяется контейнеру.

Как это работает на Spark? И верно ли утверждение ниже?

Если я дам Исполнителю памяти = 1 ГБ тогда

Общая виртуальная память = 1 Гб * 2,1 * spark.yarn.executor.memoryOverhead. Это правда?

Если нет, то как виртуальная память для исполнителя рассчитывается в Spark?

+0

http://stackoverflow.com/questions/21005643/container-is-running-beyond-memory-limits. Надеюсь, это поможет вам – Backtrack

+0

, пожалуйста, проверьте мой ответ? – Backtrack

ответ

0

искру исполнитель ресурсы, пряжи-клиент и режимы пряжи кластера использует одни и ту же конфигурацию:

Enter image description here

В искровом defaults.conf, spark.executor.memory установлен на 2   ГБ.

Я получил от этого: Resource Allocation Configuration for Spark on YARN

+0

Согласно http://spark.apache.org/docs/latest/running-on-yarn.html executorMemory * 0.10, с минимумом 384. Я хочу знать, какой из них правильный. Но главный вопрос, который у меня есть, заключается в том, будет ли в случае SPARK использовать YARN vmem-pmem (по умолчанию 2.1) для вычисления виртуальной памяти, а затем добавляет накладные расходы в эту память? В таком случае для 1 ГБ памяти для контейнера SPARK - общая виртуальная память становится 1 * 2.1 * накладными? Правильно ли это утверждение? – Anuj

+0

Согласно задаче в http://stackoverflow.com/questions/31646679/ever-increasing-physical-memory-for-a-spark-application-in-yarn Конфигурации являются: spark.executor.memory = 32 GB spark.yarn.executor.memoryOverhead = 6 ГБ Как получилось, что виртуальная память рассчитана на 152 ГБ (согласно сообщению об ошибке)? Это (32 + 6) * 4 = 152, где 4 - коэффициент пряжи.nodemanager.vmem-pmem? – Anuj

Смежные вопросы