Инструкция по работе с кластером Apache Spark

1. Подключение к серверу

ssh user@192.168.121.170

2. Создание папки проекта

mkdir pi
cd pi

Здесь pi — имя папки для проекта «Вычисление числа Пи».

3. Написание кода

nano pi.py

В начале файла инициализируйте Spark-сессию:

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("Pi").getOrCreate()

В конце программы обязательно завершайте сессию:

spark.stop()

4. Подготовка виртуальной среды Python

python3 -m venv venv
source venv/bin/activate

Установите необходимые пакеты:

pip install venv-pack <и_другие_пакеты>

Упакуйте виртуальную среду:

venv-pack -o env.tar.gz -f

Примечание: используйте venv-pack для создания переносимого архива среды. Это обеспечивает совместимость среды на всех узлах кластера.

5. Запуск программы на кластере

Базовая команда:

spark-submit --archives env.tar.gz#env --jars /opt/spark-plugins/rapids-4-spark_2.12-25.04.0.jar pi.py 100

Для работы с PostgreSQL добавьте необходимые JAR-файлы:

spark-submit \
  --archives env.tar.gz#env \
  --driver-class-path /opt/spark-plugins/postgresql-42.7.7.jar \
  --jars /opt/spark-plugins/rapids-4-spark_2.12-25.04.0.jar,/opt/spark-plugins/postgresql-42.7.7.jar \
  pi.py 100

Актуальные версии jar-файлов (плагинов) всегда можно найти в папке:

/opt/spark-plugins/

6. Завершение работы

deactivate

Веб-интерфейсы кластера

Краткие рекомендации и пояснения

  • Архивация среды: используйте только tar.gz или zip формат для передачи среды через --archives.
  • Совместимость: готовьте виртуальную среду на той же версии Python, что и на кластере.
  • Пакеты: все необходимые для работы библиотеки должны быть установлены до упаковки среды.
  • JAR-файлы: для интеграции с внешними источниками данных обязательно указывайте соответствующие драйверы через --jars и --driver-class-path.
  • Мониторинг: для отладки используйте опцию --verbose и просматривайте логи Spark.

Ссылки на документацию Apache Spark