Помогает ли функция закрытия scala искры Apache - PullRequest
0 голосов
/ 28 января 2019

На днях у меня была беседа с коллегой, и он случайно упомянул, что помимо вычислений в памяти закрытие в Scala является причиной, по которой выполнение приложений на Spark является настолько эффективным.Я нашел текст ниже в официальных документах по искрам, но не совсем понял.

Для выполнения заданий Spark разбивает обработку операций RDD на задачи, каждая из которых выполняется исполнителем.Перед выполнением Spark вычисляет закрытие задачи.Закрытие - это те переменные и методы, которые должны быть видны исполнителю для выполнения его вычислений на СДР (в данном случае foreach()).Это закрытие сериализуется и отправляется каждому исполнителю.

Любая помощь (с указанием других ссылок, пояснений, любых ссылок) высоко ценится.

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Идея "вычисления закрытия задачи" и отправки ее каждому исполнителю заключается в том, что одним из условий больших данных является то, что быстрее / проще отправлять вычисления туда, где эти данные, а не отправлять данные в вычисления

0 голосов
/ 28 января 2019

TL; DR Нет. Сериализация производительности и замыкания является ортогональной.

Основным преимуществом способности вычислять и сериализовать замыкание (едва ли это особенность Scala) является то, что оно позволяет оптимизировать программированиеопыт, особенно в интерактивном режиме.

Тем не менее, система, подобная Spark, может быть легко разработана без такой функции без какого-либо снижения производительности.Предостережение заключается в том, что пользователь должен будет явно указать зависимости каждой задачи.Есть много примеров проектов, которые используют такую ​​модель с хорошими результатами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...