Amazon SageMaker предлагает несколько способов выполнения заданий распределенной обработки данных с помощью Apache Spark, популярной платформы распределенных вычислений для обработки больших данных.
Вы можете запускать приложения Spark в интерактивном режиме из Amazon SageMaker Studio, подключив блокноты SageMaker Studio и интерактивные сеансы AWS Glue для запуска заданий Spark с бессерверным кластером. Благодаря интерактивным сеансам вы можете выбрать Apache Spark или Ray, чтобы легко обрабатывать большие наборы данных, не беспокоясь об управлении кластером.
В качестве альтернативы, если вам нужен больший контроль над средой, вы можете использовать предварительно созданный контейнер SageMaker Spark для запуска приложений Spark в виде пакетных заданий в полностью управляемом распределенном кластере с Amazon SageMaker Processing. Этот параметр позволяет выбрать несколько типов экземпляров (оптимизированные для вычислений, оптимизированные для памяти и т. д.), количество узлов в кластере и конфигурацию кластера, что обеспечивает большую гибкость для обработки данных и обучения модели.
Наконец, вы можете запускать приложения Spark, подключив ноутбуки Studio к кластерам Amazon EMR или запустив свой кластер Spark в Amazon Elastic Compute Cloud (Amazon EC2).
Все эти параметры позволяют создавать и хранить журналы событий Spark для их анализа с помощью пользовательского веб-интерфейса, обычно называемого Интерфейс искрыкоторый запускает сервер истории Spark для отслеживания хода выполнения приложений Spark, отслеживания использования ресурсов и отладки ошибок.
В этом посте мы делимся решение для установки и запуска Spark History Server в SageMaker Studio и доступа к пользовательскому интерфейсу Spark непосредственно из IDE SageMaker Studio, для анализа журналов Spark, созданных различными сервисами AWS (интерактивные сеансы AWS Glue, задания обработки SageMaker и Amazon EMR) и сохраненных в Amazon Сегмент Simple Storage Service (Amazon S3).
Обзор решения
Решение интегрирует Spark History Server в приложение Jupyter Server в SageMaker Studio. Это позволяет пользователям получать доступ к журналам Spark непосредственно из IDE SageMaker Studio. Интегрированный сервер истории Spark поддерживает следующее:
- Доступ к журналам, созданным заданиями SageMaker Processing Spark
- Доступ к журналам, созданным приложениями AWS Glue Spark
- Доступ к журналам, созданным самоуправляемыми кластерами Spark и Amazon EMR.
Интерфейс командной строки утилиты (CLI), называемый sm-spark-cli
также предоставляется для взаимодействия с пользовательским интерфейсом Spark из системного терминала SageMaker Studio. sm-spark-cli
позволяет управлять Spark History Server, не выходя из SageMaker Studio.
Решение состоит из сценариев оболочки, которые выполняют следующие действия:
- Установите Spark на сервер Jupyter для профилей пользователей SageMaker Studio или для общего пространства SageMaker Studio.
- Установите
sm-spark-cli
для профиля пользователя или общего пространства
Установите пользовательский интерфейс Spark вручную в домене SageMaker Studio.
Чтобы разместить пользовательский интерфейс Spark в SageMaker Studio, выполните следующие действия:
- Выбирать Системный терминал из программы запуска SageMaker Studio.
- Выполните следующие команды в системном терминале:
Выполнение команд займет несколько секунд.
- После завершения установки вы можете запустить пользовательский интерфейс Spark с помощью предоставленного
sm-spark-cli
и получить доступ к нему из веб-браузера, выполнив следующий код:
sm-spark-cli start s3://DOC-EXAMPLE-BUCKET/<SPARK_EVENT_LOGS_LOCATION>
Расположение S3, в котором хранятся журналы событий, созданные SageMaker Processing, AWS Glue или Amazon EMR, можно настроить при запуске приложений Spark.
Для записных книжек SageMaker Studio и интерактивных сеансов AWS Glue можно настроить расположение журнала событий Spark непосредственно из записной книжки с помощью sparkmagic
ядро.
sparkmagic
ядро содержит набор инструментов для взаимодействия с удаленными кластерами Spark через блокноты. Он предлагает магию (%spark
, %sql
) для запуска кода Spark, выполнения запросов SQL и настройки параметров Spark, таких как память исполнителя и ядра.
Для задания SageMaker Processing вы можете настроить расположение журнала событий Spark непосредственно из SageMaker Python SDK.
Дополнительные сведения см. в документации AWS:
Вы можете выбрать сгенерированный URL-адрес для доступа к пользовательскому интерфейсу Spark.
На следующем снимке экрана показан пример пользовательского интерфейса Spark.
Вы можете проверить состояние сервера журнала Spark с помощью sm-spark-cli status
в терминале Studio System.
При необходимости вы также можете остановить сервер истории Spark.
Автоматизируйте установку пользовательского интерфейса Spark для пользователей в домене SageMaker Studio.
Как ИТ-администратор, вы можете автоматизировать установку для пользователей SageMaker Studio, используя конфигурацию жизненного цикла. Это можно сделать для всех профилей пользователей в домене SageMaker Studio или для отдельных профилей. Дополнительные сведения см. в разделе Настройка Amazon SageMaker Studio с помощью конфигураций жизненного цикла.
Вы можете создать конфигурацию жизненного цикла из история-установки-server.sh script и прикрепите его к существующему домену SageMaker Studio. Установка выполняется для всех профилей пользователей в домене.
В терминале с настроенным интерфейсом командной строки AWS (AWS CLI) и соответствующими разрешениями выполните следующие команды:
После перезапуска Jupyter Server пользовательский интерфейс Spark и sm-spark-cli
будет доступен в вашей среде SageMaker Studio.
Очистить
В этом разделе мы покажем вам, как очистить пользовательский интерфейс Spark в домене SageMaker Studio вручную или автоматически.
Вручную удалите пользовательский интерфейс Spark
Чтобы вручную удалить пользовательский интерфейс Spark в SageMaker Studio, выполните следующие действия:
- Выбирать Системный терминал в программе запуска SageMaker Studio.
- Выполните следующие команды в системном терминале:
Автоматическое удаление пользовательского интерфейса Spark для всех профилей пользователей SageMaker Studio.
Чтобы автоматически удалить пользовательский интерфейс Spark в SageMaker Studio для всех профилей пользователей, выполните следующие действия:
- В консоли SageMaker выберите Домены на панели навигации, затем выберите домен SageMaker Studio.
- На странице сведений о домене перейдите к Среда вкладка
- Выберите конфигурацию жизненного цикла для пользовательского интерфейса Spark в SageMaker Studio.
- Выбирать Отсоединить.
- Удалите и перезапустите приложения Jupyter Server для профилей пользователей SageMaker Studio.
Заключение
В этом посте мы поделились решением, которое вы можете использовать для быстрой установки пользовательского интерфейса Spark в SageMaker Studio. Благодаря пользовательскому интерфейсу Spark, размещенному на SageMaker, команды машинного обучения (ML) и инженеры по обработке данных могут использовать масштабируемые облачные вычисления для доступа и анализа журналов Spark из любого места и ускорения реализации своих проектов. ИТ-администраторы могут стандартизировать и ускорить предоставление решения в облаке и избежать распространения настраиваемых сред разработки для проектов машинного обучения.
Весь код, показанный как часть этого поста, доступен в Репозиторий GitHub.
Об авторах
Джузеппе Анджело Порчелли является главным специалистом по машинному обучению, архитектором решений для Amazon Web Services. Имея несколько лет разработки программного обеспечения и опыт работы в области машинного обучения, он работает с клиентами любого размера, чтобы понять их бизнес и технические потребности и разработать решения для искусственного интеллекта и машинного обучения, которые наилучшим образом используют облако AWS и стек машинного обучения Amazon. Он работал над проектами в различных областях, включая MLOps, компьютерное зрение и NLP, с использованием широкого набора сервисов AWS. В свободное время Джузеппе любит играть в футбол.
Бруно Пистоне является специалистом по архитектуре решений AI/ML для AWS в Милане. Он работает с клиентами любого размера, помогая им понять их технические потребности и разрабатывать решения для искусственного интеллекта и машинного обучения, которые наилучшим образом используют облако AWS и стек машинного обучения Amazon. Его область знаний включает сквозное машинное обучение, индустриализацию машинного обучения и генеративный ИИ. Ему нравится проводить время со своими друзьями и исследовать новые места, а также путешествовать по новым направлениям.