「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

AI研究

光を基にした機械学習システムは、より強力で効率的な大規模言語モデルを生み出す可能性がある

MITのシステムは、現行のシステムと比較して、エネルギー効率が100倍以上向上し、計算密度が25倍向上していることを示しています

データサイエンス

「LP-MusicCapsに会ってください:データの乏しさ問題に対処するための大規模言語モデルを使用したタグから疑似キャプション生成アプローチによる自動音楽キャプション作成」

音楽のキャプション生成は、与えられた音楽トラックの自然言語による説明を生成することによる音楽情報の検索です。生成され...

データサイエンス

現代の生成的AIアプリケーションにおけるベクトルデータベースの役割

大規模な生成AIアプリケーションがうまく機能するためには、多くのデータを処理できる良いシステムが必要ですそのような重要...

AIニュース

トップ40+の生成AIツール(2023年10月)

ChatGPT – GPT-4 GPT-4はOpenAIの最新のLLMであり、これまでの前任者よりも革新的かつ正確で安全です。 また、画像、PDF、CSV...

機械学習

「テキストから言葉以上へ」 翻訳結果です

こんにちは読者の皆さん、今日は大規模言語モデル(LLM)の時代に生きていますこれにより、GPT4、ChatGPT、DALL·Eなどのソフ...

AI研究

「スタンフォード大学の研究者が自然な視覚の解読を解明し、新しいモデルが目が視覚シーンを解読する方法を明らかにする」

感覚神経科学の分野における基本的な目標は、自然な視覚シーンを処理するのに責任のある神経コードの複雑なメカニズムを理解...