「Amazon SageMaker StudioでSpark UIをホストする」

ホストする Amazon SageMaker StudioでSpark UI

Amazon SageMakerは、大規模データ処理のための人気のある分散コンピューティングフレームワークであるApache Sparkを使用して、分散データ処理ジョブを実行するためのいくつかの方法を提供しています。

Amazon SageMaker StudioからAmazon SageMaker StudioノートブックとAWS Glueインタラクティブセッションを接続して、サーバーレスクラスターでSparkジョブを実行することで、Sparkアプリケーションをインタラクティブに実行することができます。インタラクティブセッションでは、クラスターの管理について心配することなく、Apache SparkまたはRayを選択して大規模なデータセットを簡単に処理することができます。

また、環境をより細かく制御する必要がある場合は、事前に構築されたSageMaker Sparkコンテナを使用して、Amazon SageMaker Processingで完全に管理された分散クラスターでSparkアプリケーションをバッチジョブとして実行することもできます。このオプションでは、複数のインスタンスタイプ(コンピューティング最適化、メモリ最適化など)、クラスターのノード数、クラスターの構成を選択することができます。これにより、データ処理とモデルトレーニングの柔軟性が向上します。

最後に、Amazon EMRクラスターにStudioノートブックを接続するか、Amazon Elastic Compute Cloud(Amazon EC2)上でSparkクラスターを実行することで、Sparkアプリケーションを実行することができます。

これらのオプションをすべて使用すると、Sparkイベントログを生成して保存し、ウェブベースのユーザーインターフェースであるSpark UIを介して分析することができます。Spark UIは、Sparkアプリケーションの進行状況を監視し、リソースの使用状況を追跡し、エラーをデバッグするためのSpark History Serverを実行します。

この記事では、SageMaker StudioにSpark History Serverをインストールして実行し、異なるAWSサービス(AWS Glueインタラクティブセッション、SageMaker Processingジョブ、Amazon EMR)で生成され、Amazon Simple Storage Service(Amazon S3)バケットに保存されたSparkログを分析するためのソリューションを共有します。

ソリューションの概要

このソリューションは、Spark History ServerをSageMaker StudioのJupyter Serverアプリに統合します。これにより、ユーザーはSageMaker Studio IDEから直接Sparkログにアクセスすることができます。統合されたSpark History Serverは、以下の機能をサポートしています:

  • SageMaker Processing Sparkジョブによって生成されたログへのアクセス
  • AWS Glue Sparkアプリケーションによって生成されたログへのアクセス
  • セルフマネージドSparkクラスターとAmazon EMRによって生成されたログへのアクセス

また、sm-spark-cliというユーティリティコマンドラインインターフェース(CLI)も提供されており、SageMaker StudioシステムターミナルからSpark UIと対話することができます。 sm-spark-cliを使用すると、SageMaker Studioを離れることなくSpark History Serverを管理することができます。

このソリューションは、次のアクションを実行するシェルスクリプトで構成されています:

  • SageMaker StudioユーザープロファイルまたはSageMaker Studio共有スペースにSparkをインストールする
  • ユーザープロファイルまたは共有スペースにsm-spark-cliをインストールする

SageMaker StudioドメインにSpark UIを手動でインストールする

SageMaker StudioでSpark UIをホストするには、次の手順を実行します:

  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. インストールが完了したら、提供されたsm-spark-cliを使用してSpark UIを起動し、次のコードを実行してウェブブラウザからアクセスすることができます:

sm-spark-cli start s3://DOC-EXAMPLE-BUCKET/<SPARK_EVENT_LOGS_LOCATION>

SageMaker Processing、AWS Glue、またはAmazon EMR によって生成されたイベントログは、Spark アプリケーションを実行する際に設定することができます。

SageMaker Studio ノートブックおよび AWS Glue インタラクティブセッションでは、ノートブックから直接 Spark イベントログの場所を設定することができます。これは sparkmagic カーネルを使用して行います。

sparkmagic カーネルには、ノートブックを介してリモートの Spark クラスタと対話するためのツールセットが含まれています。Spark のコードを実行したり、SQL クエリを実行したり、エグゼキュータのメモリやコアのような Spark の設定を構成するためのマジックコマンド(%spark%sql)を提供します。

SageMaker Processing ジョブでは、SageMaker Python SDK から直接 Spark イベントログの場所を設定することができます。

詳細については、AWS のドキュメントを参照してください:

  • SageMaker Processing の場合は、PySparkProcessor を参照してください
  • AWS Glue インタラクティブセッションの場合は、Spark UI の構成を参照してください(コンソール)
  • Amazon EMR の場合は、出力先の場所を構成してください

生成された URL を選択して Spark UI にアクセスすることができます。

以下のスクリーンショットは、Spark UI の例を示しています。

Studio システムターミナルで sm-spark-cli status コマンドを使用して Spark History Server のステータスを確認することができます。

必要に応じて、Spark History Server を停止することもできます。

SageMaker Studio ドメイン内のユーザーのために Spark UI のインストールを自動化する

IT 管理者として、ライフサイクル設定を使用して SageMaker Studio ユーザーのインストールを自動化することができます。これは、SageMaker Studio ドメイン内のすべてのユーザープロファイルまたは特定のユーザープロファイルに対して行うことができます。詳細については、ライフサイクル設定を使用した Amazon 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サーバーを再起動した後、Spark UIとsm-spark-cliはSageMaker Studio環境で利用できるようになります。

クリーンアップ

このセクションでは、SageMaker Studioドメイン内のSpark UIを手動または自動でクリーンアップする方法を説明します。

Spark UIの手動アンインストール

SageMaker StudioでSpark UIを手動でアンインストールするには、以下の手順を完了します:

  1. SageMaker Studioランチャーでシステムターミナルを選択します。

  1. システムターミナルで以下のコマンドを実行します:
cd amazon-sagemaker-spark-ui-0.1.0/install-scripts

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

すべてのSageMaker Studioユーザープロファイルに対してSpark UIを自動的にアンインストールする

SageMaker Studioのすべてのユーザープロファイルに対してSpark UIを自動的にアンインストールするには、以下の手順を完了します:

  1. SageMakerコンソールで、ナビゲーションペインでドメインを選択し、SageMaker Studioドメインを選択します。

  1. ドメインの詳細ページで、環境タブに移動します。
  2. SageMaker Studio上のSpark UIのライフサイクル設定を選択します。
  3. デタッチを選択します。

  1. SageMaker StudioユーザープロファイルのJupyterサーバーアプリを削除して再起動します。

結論

この投稿では、SageMaker StudioにSpark UIを迅速にインストールするために使用できるソリューションを共有しました。Spark UIをSageMakerにホストすることで、機械学習(ML)およびデータエンジニアリングチームはどこからでもアクセスしてSparkログを分析し、プロジェクトの提供をスピードアップすることができます。IT管理者は、クラウドでのソリューションのプロビジョニングを標準化し、MLプロジェクトのためのカスタム開発環境の拡散を回避することができます。

この投稿のすべてのコードはGitHubリポジトリで利用できます。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

機械学習

TaatikNet(ターティクネット):ヘブライ語の翻字のためのシーケンス・トゥ・シーケンス学習

この記事では、TaatikNetとseq2seqモデルの簡単な実装方法について説明していますコードとドキュメントについては、TaatikNet...

AIニュース

「400ポンドのNYPDロボットがタイムズスクエアの地下鉄駅で試用される」

ニューヨーク市警察は、タイムズスクエアの地下鉄駅で約400ポンドの「完全に自律型の屋外セキュリティロボット」を試験導入し...

AI研究

HuggingFace Researchが紹介するLEDITS:DDPM Inversionと強化された意味的なガイダンスを活用したリアルイメージ編集の次なる進化

テキストガイド拡散モデルを利用した写真生成の現実感と多様性の向上により、関心が大幅に高まっています。大規模モデルの導...

AIニュース

現代の時代において、信頼性のある量子コンピューティングの鍵は猫キュービットなのか?

「環境雑音に対するキュビットの感度の高さから、量子コンピュータはエラーを起こしやすいです猫キュビットは、耐故障性のあ...

AIニュース

「2Dマテリアルがハードウェアのために3Dエレクトロニクスを再構築する」

国際チームが、積層された2次元材料から成る一体型の3次元集積チップを開発しました

AI研究

スタンフォード大学、コーネル大学、オックスフォード大学の新しいAI研究は、単一の画像のわずかなインスタンスからオブジェクトの固有性を発見する生成モデルを紹介しています

バラの本質は、その独特の形状、質感、および材料組成で構成されています。これを使用して、さまざまな位置で、さまざまな形...