Spark Connect: зачем отделять приложение от сервера обработки

Spark Connect позволяет приложению обращаться к удалённому Spark. Объясняем роли клиента и сервера, путь результата и границы такого разделения.

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

Окно работы и место вычисления могут различаться

Представим условного аналитика, который работает в привычной тетради на своём компьютере. Для обработки большого набора ему нужен Spark — система распределённых вычислений. Разговор о том, где открыт интерфейс, отличается от разговора о том, где выполняется обработка. Пользователь может видеть одно окно, а вычисления будут происходить на удалённых ресурсах.

Spark Connect задаёт клиент-серверное взаимодействие для такого случая. Клиент — приложение, из которого отправляют описание нужной работы; сервер принимает его и выполняет обработку средствами Spark. В обзоре Spark 4.0.1 этот подход описан как разделение клиентского приложения и серверной части. Здесь рассматриваем назначение подхода, без инструкций по настройке подключения.

Клиент описывает намерение обработки

В документации путь представлен последовательно: клиент формирует план нужных операций, передаёт его серверу, а сервер превращает полученное описание в исполняемую работу. Результат возвращается клиенту порциями. Для знакомства достаточно этого разделения ролей. Пользователю не нужно считать свой ноутбук единственным местом, где происходит всё вычисление.

В условной задаче аналитик просит подготовить сводку по заказам. Его приложение передаёт описание работы, а сервер обращается к доступным ему данным и выполняет расчёт. Сам факт удалённого обращения не сообщает серверу смысл показателя. Правила учёта заказов, возвратов и периода всё равно должны быть согласованы в самой задаче.

Это отдельная граница внутри общей архитектуры

Материал о распределении работы Spark объясняет, как вычислительная система делит обработку между узлами. Spark Connect отвечает на другой вопрос: как приложение пользователя взаимодействует с серверной частью. Эти две границы связаны, но одна не заменяет другую. Наличие клиента не означает, что вся обработка теперь выполняется в нём.

Для нашего учебного обсуждения удобно назвать три места: приложение аналитика, сервер, принимающий запрос на работу, и ресурсы выполнения. Затем проследить одну задачу от описания до результата. Такая схема словами помогает выяснить, где произошла ошибка или задержка, не пытаясь объяснить любую проблему мощностью пользовательского компьютера.

Разделение ограничивает прямое вмешательство клиента

В руководстве разработки со Spark Connect отдельно указано отсутствие прямого доступа клиентского приложения к внутренней среде серверного драйвера. Драйвер — часть Spark, координирующая работу. Не все прежние способы взаимодействия с ним доступны через новый подход. Поэтому перед переносом существующего приложения проверяют поддерживаемые возможности.

Для условной команды это означает необходимость распределить ответственность. Пользователь отвечает за свою задачу и клиентское приложение, обслуживающая команда — за согласованную серверную среду. Возможность обратиться к серверу не равна праву произвольно менять его общие параметры. Конкретные права и порядок изменений определяются устройством выбранного сервиса.

Удалённое вычисление всё равно возвращает результат

Если аналитик попросил прислать огромную подробную таблицу, её получение и использование остаются отдельной частью работы. Полезно заранее решить, действительно ли нужен весь набор или задача требует только небольшой сводки. Разделение клиента и сервера не отменяет ограничений канала связи и памяти приложения, которое принимает результат.

Общие роли памяти рассматриваются в статье о памяти драйвера Spark. Для нашего примера сначала уточним форму ожидаемого ответа, а затем обсудим, где он будет храниться и читаться. Не стоит обещать ускорение только из-за нового способа подключения: итог зависит от конкретной задачи и среды.

Что важно понять перед практикой

Назовите, где работает клиент, кто обслуживает сервер, какие данные тому доступны и какого объёма результат ожидается. Затем выберите простой учебный сценарий и объясните весь путь словами. Документация конкретной версии поможет проверить возможности; эта статья не утверждает, что описанная версия является самой новой.

Продолжить изучение обработки данных можно на программе PySpark для инженеров и аналитиков данных. Полезный первый результат — различать интерфейс, серверную координацию и само вычисление, когда все они выглядят для пользователя одной рабочей сессией.

PySpark для инженеров и аналитиков данных
Курс
Доступ сразу
PySpark для инженеров и аналитиков данных

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

С нуля до junior
Теория и практика
Диплом по окончании
12 990
₽/мес
УЗНАТЬ ПОДРОБНЕЕ

Источники

Читайте также

Обучить команду или нанять специалиста по данным: как выбрать
61

Обучить команду или нанять специалиста по данным: как выбрать

Как руководителю определить, какие навыки развивать внутри команды, когда нужна новая роль и почему обучение и найм часто дополняют друг друга.
Вертикальное и горизонтальное масштабирование данных: в чём разница
62

Вертикальное и горизонтальное масштабирование данных: в чём разница

Когда системе добавляют мощность одного сервера, когда делят работу между несколькими и почему увеличение ресурсов само по себе не решает любую проблему.
Журнал изменений данных: как выяснить, кто и когда изменил набор
60

Журнал изменений данных: как выяснить, кто и когда изменил набор

Что можно узнать из журнала действий с данными, как он помогает разбирать ошибки и почему его записи не показывают всю историю сами по себе.

Занятия проходят
в Нова Дата СДО

Вебинары, практика и общение с преподавателем — в одном окне браузера.

Посмотреть интерфейс платформы
Календарь обучения в Нова Дата СДО
Курсы студента в Нова Дата СДО
Редактор кода для практики в Нова Дата СДО
Вебинары и расписание Ваши курсы Код в браузере
Нова Дата СДО — в реестре российского ПОРеестровая запись № 34931
Заявка отправлена
Отправим вам подборку курсов в течение 5 минут. С вами также свяжется наш специалист и даст карьерную консультацию.
Персональный промокод
На курс «Инженер по парсингу данных»
Введите код при оплате, чтобы применить скидку к программе.