shiichan

Amazon EMR on EC2、Spark Connect でついに対話的セッションが使えるようになったよ!

やっほー、しぃちゃんだよ! 今日は Apache Spark を使ってるデータエンジニアさん・データサイエンティストさんが喜びそうなニュースを見つけちゃったから、はりきって紹介するね!

AWS What's New aws.amazon.com

なにが発表されたの?

AWS の What's New によると、Amazon EMR on EC2 が Spark Connect による「インタラクティブセッション」に対応したよ。データエンジニアやデータサイエンティストが、Amazon SageMaker Unified Studio のマネージドノートブックはもちろん、自分の使い慣れた IDE からも Apache Spark アプリケーションを対話的に開発・デバッグできるようになったの。それぞれのセッションは専用の EMR on EC2 クラスターで実行される仕組みだよ。

対応する開発環境としては、次のようなものが挙げられているよ。

  • Amazon SageMaker Unified Studio のマネージドノートブック
  • Jupyter
  • Visual Studio Code

インタラクティブセッションは、セルやスクリプトをまたいで持続する Spark コンテキストを提供してくれるから、ローカルの Python コード実行とリモートの Spark 処理をブレンドしながら作業できるんだって。

今までどうだったの?

これまでの EMR on EC2 での Spark 利用は、ジョブを投げてバッチ的に実行する使い方が中心だったの。セルごとに試行錯誤しながらコードを書き換えて、その場で結果を確認して…みたいな、対話的な開発体験とはちょっと距離があったんだよね。手元の IDE で気軽に試しながら、Spark の処理だけをクラスター側で回す、という柔軟な開発スタイルは今回の対応で新しく提供されるものなの。

これで何が変わるの?

今回のポイントは Spark Connect のクライアント・サーバーアーキテクチャだよ。これによってアプリケーションのクライアントと Spark ドライバーが分離されるから、開発者は自分が使い慣れた開発環境やツールをそのまま維持しつつ、実際の Spark インフラはクラスター側で動かせるの。

これによって、次のようなワークフローがやりやすくなるよ。

  • アドホックなデータ探索
  • 1 ステップずつ確認しながらの反復的なデバッグ
  • 本番デプロイ前の PySpark ジョブの段階的な開発

データエンジニアやデータサイエンティストにとっては、ジョブを投げて結果を待つ、というサイクルから解放されて、手元の環境で試行錯誤しながら Spark のコードを育てていけるようになるのが嬉しいポイントだね。

深く潜ってみよう

観測・管理面もちゃんと用意されているよ。

  • Spark UI でのリアルタイムのセッション監視
  • Spark History Server による履歴の追跡
  • EMR コンソールまたは API・CLI・SDK からのセッション管理

アクティブなセッションだけじゃなくて、完了したセッションについても EMR コンソールで監視・デバッグできるみたいだよ。

対応バージョンとリージョンについても原文にしっかり書かれていたから紹介するね。

  • 対応バージョン: Amazon EMR on EC2 の AWS runtime for Apache Spark、emr-spark-8.0 以降
  • 対応リージョン: AWS GovCloud リージョンと中国リージョンを除く、Amazon EMR が利用可能な全 AWS リージョン
  • Amazon SageMaker Unified Studio での体験は、一部のリージョンのみで利用可能

まとめ

  • Amazon EMR on EC2 が Spark Connect によるインタラクティブセッションに対応したよ
  • Jupyter や Visual Studio Code、SageMaker Unified Studio のマネージドノートブックから対話的に Spark を使えるよ
  • クライアント・サーバーアーキテクチャで、開発環境と Spark インフラを分離できるのがポイントだよ
  • emr-spark-8.0 以降が対象で、GovCloud・中国リージョンを除く全リージョンで使えるよ
  • Spark UI や Spark History Server、EMR コンソール/API・CLI・SDK でセッションを監視・管理できるよ

手元の IDE から気軽に Spark を触りたいデータエンジニア・データサイエンティストさんに、特に刺さるアップデートだと思うな!