gitverse new year логотип

spark-cluster-demo

Форк
0

8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
README.MD

Как запустить воркшоп

Warning: Необходимо загрузить > 4Гб Warning: RAM 16Гб

  1. git clone https://gitverse.ru/sc/dtirskikh/spark-cluster-demo.git
  2. cd spark-cluster-demo
  3. docker compose build
  4. docker compose up

img.png

Описание сервисов

Spark

Apache Spark – это система распределенной обработки данных с открытым исходным кодом, которая применяется для обработки больших данных. Быстрое выполнение аналитических запросов к данным любого объема обеспечивается благодаря кэшированию в памяти и оптимизированному исполнению запросов.

Первый запуск длится дольше других, так как требуют загрузки библиотек

Структура

spark-standalone/ ├── start-spark.sh # Точка входа при запуске контейнера (master|worker|history-server) ├── apps/ # Монтируется. Python-скрипты для запуска через spark-submit в кластере ├── conf/ # Конфигурация по умолчанию ├── data/ # Данные, которые могут быть использованы при spark-submit. ├── logs/ # Логи при выполнении master или worker ├── logs_event/ # События выполнения приложений для history-server

submit-скритпы можно запускать из любой ноды кластера (master или worker). Предварительно необходимо зайти в один из контейнеров, выполнив команду из директории проекта

# Master docker compose exec -it spark-master /bin/bash # Worker docker compose exec -it spark-worker-a /bin/bash

Примеры запуска

spark-submit
из кластера

/opt/spark/bin/spark-submit /opt/spark-apps/test_data.py /opt/spark/bin/spark-submit /opt/spark-apps/test_minio.py

Историческая информация о работе приложений доступна по адресу: http://localhost:18080/

Во время работы spark-приложения: http://localhost:4040
Если есть одновременные запуски, то необходимо указывать следующий порт: 4041, 4042, ...

Мастер доступен по адресу: http://localhost:9090
Воркеры: http://localhost:9091 и http://localhost:9092

Jupyter

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

Структура

jupyter/ ├── workshop/ # Монтируется. Сохраняет настройки и ноутбуки

Web: http://127.0.0.1:8888/ Необходимо в логах контейнера найти ссылку с токеном. Иначе приложение не позволяет зайти

docker compose logs jupyter 2>&1 | grep "?token"

Ссылка будет примерно такой, только с другим токеном

http://127.0.0.1:8888/lab?token=e4b7a12929435fbe981ffaf422eadef31f0cbf567ba62cd1

Все логи по умолчанию пишутся в консоль. Чтобы увидеть их в ноутбуке, необходимо выполнить следующие действия:

В терминале выполнить команду

ipython profile create;
или в ячейке
!ipython profile create;

В файле
jupyter/workshop/.ipython/profile_default/ipython_kernel_config.py
раскомментировать строку
c.IPKernelApp.capture_fd_output = True
;

Перезапустить kernel в ноутбуке.
C помощью тестовой тетрадки

test.ipynb
есть возможность протестировать обработку данные их Minio

Minio

MinIO — это высокопроизводительное объектное хранилище с открытым исходным кодом, предназначенное для локального использования или в качестве альтернативы облачному хранилищу, такому как Amazon S3.

Структура

minio/ ├── data/ # Монтируется. Сохраняет настройки и бакеты

Web: http://localhost:9001/

Login: yandex.practicum
Password: yandex.practicum

Описание

Языки

Jupyter Notebook

  • Dockerfile
  • Python
  • Shell
Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.