Работа с кластером через JupyterLab
1. Подключение к JupyterLab
Для входа в JupyterLab, у вас должен быть аккаунт в digitlab.mgimo.ru.
2. Создание папки проекта
Создайте папку pi через интерфейс JupyterLab.
Здесь pi — имя папки для проекта «Вычисление числа Пи».
3. Написание кода
Создайте Python файл pi.py.
В начале файла инициализируйте Spark-сессию:
from pyspark.sql import SparkSession spark = SparkSession.builder.appName("Pi").getOrCreate()
В конце программы обязательно завершайте сессию:
spark.stop()
4. Подготовка виртуальной среды Python
Откройте в интерфейсе JupyterLab консоль:
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.06.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.06.0.jar,/opt/spark-plugins/postgresql-42.7.7.jar \ pi.py 100
Актуальные версии jar-файлов (плагинов) всегда можно найти в папке:
ls /opt/spark-plugins/
6. Завершение работы
deactivate
Веб-интерфейсы кластера
- JupyterLab: http://192.168.121.170:8000
- Spark Master UI: http://192.168.121.170:8080
- Spark History Server: http://192.168.121.170:18080
Краткие рекомендации и пояснения
- Архивация среды: используйте только tar.gz или zip формат для передачи среды через --archives.
- Совместимость: готовьте виртуальную среду на той же версии Python, что и на кластере.
- Пакеты: все необходимые для работы библиотеки должны быть установлены до упаковки среды.
- JAR-файлы: для интеграции с внешними источниками данных обязательно указывайте соответствующие драйверы через --jars и --driver-class-path.
- Мониторинг: для отладки используйте опцию --verbose и просматривайте логи Spark.
Ссылки на документацию Apache Spark
- PySpark: https://spark.apache.org/docs/latest/api/python/user_guide/index.html — руководство пользователя PySpark
- SparkR: https://spark.apache.org/docs/latest/api/R/articles/sparkr-vignettes.html — практическое руководство SparkR
- Spark SQL, DataFrames and Datasets: https://spark.apache.org/docs/latest/sql-programming-guide.html — руководство по обработке данных
- Structured Streaming: https://spark.apache.org/docs/latest/streaming/index.html — руководство по потоковой обработке данных
- MLlib (машинное обучение): https://spark.apache.org/docs/latest/ml-guide.html — руководство по библиотеке машинного обучения
- GraphX (графовые алгоритмы): https://spark.apache.org/docs/latest/graphx-programming-guide.html — руководство по работе с графами
- 34 просмотра