Home Машинное обучение Разместите пользовательский интерфейс Spark в Amazon SageMaker Studio. | DeepTech

Разместите пользовательский интерфейс Spark в Amazon SageMaker Studio. | DeepTech

0
Разместите пользовательский интерфейс Spark в Amazon SageMaker Studio.
 | DeepTech

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, выполните следующие действия:

  1. Выбирать Системный терминал из программы запуска SageMaker Studio.

  1. Выполните следующие команды в системном терминале:
curl -LO https://github.com/aws-samples/amazon-sagemaker-spark-ui/releases/download/v0.1.0/amazon-sagemaker-spark-ui-0.1.0.tar.gz
tar -xvzf amazon-sagemaker-spark-ui-0.1.0.tar.gz

cd amazon-sagemaker-spark-ui-0.1.0/install-scripts
chmod +x install-history-server.sh
./install-history-server.sh

Выполнение команд займет несколько секунд.

  1. После завершения установки вы можете запустить пользовательский интерфейс 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) и соответствующими разрешениями выполните следующие команды:

curl -LO https://github.com/aws-samples/amazon-sagemaker-spark-ui/releases/download/v0.1.0/amazon-sagemaker-spark-ui-0.1.0.tar.gz
tar -xvzf amazon-sagemaker-spark-ui-0.1.0.tar.gz

cd amazon-sagemaker-spark-ui-0.1.0/install-scripts

LCC_CONTENT=`openssl base64 -A -in install-history-server.sh`

aws sagemaker create-studio-lifecycle-config \
	--studio-lifecycle-config-name install-spark-ui-on-jupyterserver \
	--studio-lifecycle-config-content $LCC_CONTENT \
	--studio-lifecycle-config-app-type JupyterServer \
	--query 'StudioLifecycleConfigArn'

aws sagemaker update-domain \
	--region {YOUR_AWS_REGION} \
	--domain-id {YOUR_STUDIO_DOMAIN_ID} \
	--default-user-settings \
	'{
	"JupyterServerAppSettings": {
	"DefaultResourceSpec": {
	"LifecycleConfigArn": "arn:aws:sagemaker:{YOUR_AWS_REGION}:{YOUR_STUDIO_DOMAIN_ID}:studio-lifecycle-config/install-spark-ui-on-jupyterserver",
	"InstanceType": "system"
	},
	"LifecycleConfigArns": (
	"arn:aws:sagemaker:{YOUR_AWS_REGION}:{YOUR_STUDIO_DOMAIN_ID}:studio-lifecycle-config/install-spark-ui-on-jupyterserver"
	)
	}}'

После перезапуска Jupyter Server пользовательский интерфейс Spark и sm-spark-cli будет доступен в вашей среде SageMaker Studio.

Очистить

В этом разделе мы покажем вам, как очистить пользовательский интерфейс Spark в домене SageMaker Studio вручную или автоматически.

Вручную удалите пользовательский интерфейс Spark

Чтобы вручную удалить пользовательский интерфейс Spark в SageMaker Studio, выполните следующие действия:

  1. Выбирать Системный терминал в программе запуска SageMaker Studio.

  1. Выполните следующие команды в системном терминале:
cd amazon-sagemaker-spark-ui-0.1.0/install-scripts

chmod +x uninstall-history-server.sh
./uninstall-history-server.sh

Автоматическое удаление пользовательского интерфейса Spark для всех профилей пользователей SageMaker Studio.

Чтобы автоматически удалить пользовательский интерфейс Spark в SageMaker Studio для всех профилей пользователей, выполните следующие действия:

  1. В консоли SageMaker выберите Домены на панели навигации, затем выберите домен SageMaker Studio.

  1. На странице сведений о домене перейдите к Среда вкладка
  2. Выберите конфигурацию жизненного цикла для пользовательского интерфейса Spark в SageMaker Studio.
  3. Выбирать Отсоединить.

  1. Удалите и перезапустите приложения 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. Его область знаний включает сквозное машинное обучение, индустриализацию машинного обучения и генеративный ИИ. Ему нравится проводить время со своими друзьями и исследовать новые места, а также путешествовать по новым направлениям.

LEAVE A REPLY

Please enter your comment!
Please enter your name here