Перейти к содержанию

Apache Spark

В этой статье

Информация

Apache Spark — это мощный и быстрый движок для обработки больших данных, который может быть использован для выполнения различных задач, таких как обработка потоков данных в реальном времени, обучение машинного обучения и анализ баз данных. Spark предоставляет гибкий набор API на разных языках программирования, включая Scala, Java, Python и R.

Основные возможности Apache Spark

  • Высокая производительность: Spark использует распределенную обработку данных и оптимизированные алгоритмы, что позволяет обрабатывать большие объемы данных быстрее, чем традиционные решения.
  • Распределённость: Spark может работать на кластерах из множества узлов, что позволяет масштабировать обработку данных по мере необходимости.
  • Разнообразие API: Spark предоставляет API на разных языках программирования, что делает его подходящим для различных сценариев и команд разработчиков.
  • Поддержка различных типов данных: Spark может обрабатывать разные типы данных, включая структурированные данные (таблицы), неструктурированные данные (текст, изображения) и полуструктурированные данные (JSON).
  • Графический API Spark GraphX: Позволяет выполнять операции над графами больших размеров.

Особенности сборки

  • Поддерживаемая операционная система: Ubuntu 22.04, Debian 11, Debian 12;
  • Доступ к панели управления: https://spark{Server_ID_from_Invapi}.hostkey.in
  • Время установки панели вместе с ОС занимает порядка 15 минут.

Начало работы после развертывания Apache Spark

После оплаты заказа на указанную при регистрации электронную почту придет уведомление о готовности сервера к работе. В нем будет указан IP-адрес VPS, а также логин и пароль для подключения. Управление оборудованием клиенты нашей компании осуществляют в панели управления серверами и APIInvapi.

Данные для авторизации, которые можно найти или во вкладке Info >> Tags панели управления сервером или в присланном e-mail:

  • Ссылка для доступа к панели управления Apache Airflow с веб-интерфейсом: в теге webpanel;
  • Логин и Пароль: приходит в письме на вашу электронную почту при готовности сервера к работе после развертывания ПО.

Настройка Apache Spark

Spark может быть запущен на локальном компьютере или в распределенном окружении. Перед переходом по ссылке из тега webpanel необходимо:

Подключиться к серверу по SSH:

ssh root@<server_ip>

Затем запустить нужное приложение с помощью команды из таблицы, приведенной в разделе Запуск компонентов.

В противном случае при переходе по ссылке будет выведена ошибка 502 (Bad Gateway).

Запуск компонентов

Вы можете запустить различные компоненты Spark с web-интерфейсом, такие как Application, Standalone Master, Standalone Worker и History Server, с помощью команд из таблицы ниже.

Название Локальный адрес и порт Внешний адрес Команда для запуска
Application localhost:4040 https://spark{Server_ID_from_Invapi}.hostkey.in /root/spark-3.5.3-bin-hadoop3/bin/./spark-shell
Standalone Master localhost:8080 https://spark{Server_ID_from_Invapi}.hostkey.in/master /root/spark-3.5.3-bin-hadoop3/sbin/./start-master.sh
Standalone Worker localhost:8081 https://spark{Server_ID_from_Invapi}.hostkey.in/worker /root/spark-3.5.3-bin-hadoop3/sbin/./start-master.sh spark://hostname:port
History Server localhost:18080 https://spark{Server_ID_from_Invapi}.hostkey.in/history mkdir /tmp/spark-events
/root/spark-3.5.3-bin-hadoop3/sbin/./start-history-server.sh

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

ls /root
В результате ее выполнения на экран терминала будет выведено содержимое директории root, включающей директорию spark с указанием установленной версии:

После запуска компонентов Spark можно получить доступ к их веб-интерфейсам через указанные внешние адреса. Рассмотрим пример интерфейса Spark Application:

Данный пример демонстрирует интерфейс Spark Application, доступный по адресу https://spark{Server_ID_from_Invapi}.hostkey.in. В этом интерфейсе отображается информация о выполняемых задачах, стадиях обработки, использовании памяти и другие ключевые метрики. Следует обратить внимание, что ссылки на другие компоненты Spark (например, на Standalone Master или Worker) в данном интерфейсе не будут функционировать при подключении с другой машины. Это обусловлено настройками безопасности: компоненты настроены для работы локально, а наружу проброшен только веб-интерфейс, доступный по доменному имени.

Для изменения этой конфигурации и обеспечения внешнего доступа ко всем компонентам необходимо выполнить следующие шаги:

  • Остановить и удалить текущий Docker-контейнер, выполнив команду docker compose up down в папке /root/nginx.
  • Удалить строку SPARK_LOCAL_IP="127.0.0.1" из файла /etc/environment.

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

Примечание

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

Кастомизация путей

  1. Остановить Docker-контейнер, выполнив команду docker compose up down в папке /root/nginx.
  2. Внести необходимые правки в файл конфигурации Nginx: /data/nginx/user_conf.d/spark{Server_ID_from_Invapi}.hostkey.in.conf.
  3. Перезапустить Docker-контейнер из папки /root/nginx с помощью команды: docker compose up -d.

Примечание

Подробная информация по основным настройкам Apache Spark содержится в документации разработчиков.

Заказ сервера с Apache Spark с помощью API

Для установки данного ПО с использованием API следуйте этой инструкции.