3

ref говорит:Что такое spark.driver.maxResultSize?

Предел общего размера сериализованными результатов всех разделов для каждого действия Спарк (например, собирать). Должно быть не менее 1M, или 0 для без ограничений. Задания будут прерваны, если общий размер превышает этот предел. Наличие высокого предела может привести к ошибкам памяти из-за ошибки (зависит от от spark.driver.memory и из-за нехватки памяти объектов в JVM). Установка . Правильный лимит может защитить драйвер от ошибок из-за памяти.

Что именно этот атрибут делает? Я имею в виду сначала (так как я не сражаюсь с работой, которая терпит неудачу из-за ошибок в памяти), я думал, что должен увеличить это.

На второй мысли, кажется, что этот атрибут определяет максимальный размер результата работник может отправить водителя, поэтому, оставляя его на значения по умолчанию (1G) будет наилучший подход для защиты водителя ..

Но произойдет ли это в этом случае, работнику придется отправлять больше сообщений, поэтому накладные расходы будут только тем, что работа будет медленнее?


Если я правильно понимаю, при условии, что работник хочет отправить 4G данных для водителя, то с spark.driver.maxResultSize=1G, заставит работника отправить 4 сообщения (вместо 1 с неограниченным spark.driver.maxResultSize). Если это так, то увеличение этого атрибута для защиты моего водителя от убийства из пряжи должно быть неправильным.

Но вопрос остается. Я имею в виду, что, если я установил его на 1 М (минимум), это будет самый защитный подход?

ответ

5

при условии, что работник хочет отправить 4G данных для водителя, затем с spark.driver.maxResultSize = 1G, будет вызывать работник для отправки сообщений (4 вместо 1 с неограниченным spark.driver.maxResultSize) ,

No. Если оценочный размер данных больше maxResultSize, задание будет прервано. Цель здесь - защитить ваше приложение от потери драйверов, не более того.

Если я установил его на 1 М (минимум), это будет самый защитный подход?

В смысле да, но, очевидно, это не полезно на практике. Хорошее значение должно позволить приложению нормально работать, но защищать приложение от неожиданных условий.