Amazon EMR での Apache Spark
EMR での Apache Spark を使用する理由
Amazon EMR では、Apache Spark と Apache Iceberg を使用してオープンなトランザクションデータレイクを構築できます。当社のパフォーマンス最適化ランタイムは、オープンソースの Spark と 100% API 互換で、オープンソースの同等のものよりも最大 4.5 倍高速に実行でき、Iceberg の書き込みパフォーマンスは 2.7 倍高速です。
EMR は Apache Iceberg v3 と Spark 4.0 (プレビュー) をサポートしているため、ACID トランザクションやスキーマエボリューションなどの機能を VARIANT データ型や大規模な半構造化データ、データ整合性のための ANSI SQL コンプライアンスなどの機能とともに活用できます。EC2 のきめ細かな制御、EKS のコンテナ化されたスケール、あるいは EMR Serverless のシンプルさのいずれを必要としていても、Amazon EMR はスピード、信頼性、データ整合性をもたらします。
特徴と利点
Amazon EMR のパフォーマンスが最適化された Apache Spark ランタイムは、100% の API 互換性を維持しながら、オープンソースの同等のものよりも最大 4.5 倍速い実行速度でデータレイクのワークロードを高速化します。この最適化は Apache Iceberg の運用にも適用され、速度と信頼性の両方を必要とするトランザクションデータレイクの書き込みパフォーマンスが 2.7 倍速くなります。
EMR は Apache Iceberg v3 と Spark 4.0 (プレビュー) をサポートしているため、ACID トランザクション、スキーマの進化、半構造化データ処理のための VARIANT データ型、ANSI SQL コンプライアンスなどの高度な機能を実現できます。
Spark 向け Amazon EMR ランタイムは、完全にメモリ内で実行されるようにクエリプランを最適化し、ハードウェアの使用率を最大化します。EMR は、中間データの処理方法を合理化することで、リソースを大量に消費する機械学習ワークロードの結果を得るまでの時間を短縮し、イテレーションをより迅速に行えるようにします。
SQL、Python、Scala の統合環境を実現する SageMaker Unified Studio と EMR Studio でワークフローをモダナイズしましょう。Amazon Q Developer を活用して、最適化された PySpark コードを生成し、複雑な実行計画 (DAG) をリアルタイムでトラブルシューティングできます。標準の Spark とは異なり、EMR には Persistent Spark UI が用意されているため、サーバーレスアプリケーションやエフェメラルクラスターが終了した後でもジョブログを分析およびデバッグできます。この永続性は、本番環境での監査と継続的なパフォーマンスチューニングにとって重要です。
EMR Serverless は、すぐに起動できるノートブックエクスペリエンスを提供することで、操作負荷が軽減されます。クラスターをプロビジョニング、スケール、管理する必要はもうありません。Amazon SageMaker Unified Studio や JupyterLab などのお好みの開発環境を EMR サーバーレスアプリケーションにアタッチし、クエリを開始できます。Spark の EMR ランタイムは、インタラクティブコードが本番パイプラインと同じエンタープライズグレードの速度で実行されることを保証します。Amazon EMR は、ペタバイト規模の S3 データに対してアドホックデータディスカバリーを実行する場合でも、複雑な特徴量エンジニアリングタスクを実行する場合でも、最も重要なデータサイエンスワークフローを加速するために必要な、シームレスで高性能な環境をもたらします。
Apache Spark アップグレードエージェントは、PySpark アプリケーションと Scala アプリケーションの全体で API と動作の変更を自動的に識別します。エンジニアは、MCP(モデルコンテキストプロトコル)の互換性を利用して、SageMaker Unified Studio から直接、または選択した IDE からアップグレードを開始することができます。アップグレードの過程で、エージェントは既存のコードを分析し、具体的な変更を提案します。エンジニアは実装前にそれを確認して承認することができます。エージェントはデータ品質の検証を通じて機能の正確性を確認します。エージェントは現在、Spark 2.4 から 3.5 へのアップグレードをサポートしており、アップグレードプロセスの全体を通じてデータ処理の正確性を維持します。
ユースケース
EMR で Spark Streaming を使用して、Amazon Kinesis、Apache Kafka、またはその他データストリームからのリアルタイムデータを活用し、処理します。耐障害性に優れた方法でストリーミング分析を実行し、結果を S3 やクラスター上の HDFS に書き込みます。
EMR での Apache Spark には、さまざまなスケーラブル機械学習アルゴリズムの MLlib が含まれており、独自のライブラリを使用することも可能です。ジョブの間はデータセットをメモリに保存することで、Spark は、機械学習のワークロードで一般的である、反復的なクエリに対して優れたパフォーマンスを発揮します。モデルを簡単にトレーニングしてホストするための Amazon SageMaker Spark を使用して、Amazon EMR で実行されている Apache Spark クラスターにノートブックインスタンスを接続することで Amazon SageMaker 機能を強化できます。
SQL や HiveQL を使用した低レイテンシーでインタラクティブなクエリのために Spark SQL を使用します。EMR での Spark は EMRFS を使用できるため、ユーザーは Amazon S3 内のデータセットへのアドホックアクセスを行えます。ODBC および JDBC 接続経由で EMR Studio、EMR Notebooks、Zeppelin notebooks、BI ツールを利用することもできます。
お客様の成功事例
Yelp
Yelp の広告ターゲティングチームは、広告とのユーザーインタラクションの可能性を判断する予測モデルを作成しています。Yelp は、Amazon EMR での Apache Spark を使用して機械学習モデルトレーニング用の大量のデータを処理することで、収益と広告クリック率を向上させました。
The Washington Post
The Washington Post は、ウェブサイトの推奨エンジンを強化するモデルを構築し、読者のエンゲージメントと満足度を高めるために Amazon EMR での Apache Spark を使用しています。Amazon S3 に対する Amazon EMR の高性能接続を活用して、モデルをほぼリアルタイムで更新しています。
Krux
Krux では、顧客インサイト向けのデータ管理プラットフォームの一部として、多数の機械学習ワークロードと一般処理ワークロードを Apache Spark を使用して実行しています。Krux は、Amazon EC2 スポットキャパシティを使用するエフェメラル Amazon EMR クラスターを利用してコストを節減し、EMRFS 経由で Amazon S3 を Apache Spark のデータレイヤーとして使用しています。
GumGum
画像内広告と画面内広告のプラットフォームである GumGum は、在庫予測、クリックストリームログの処理、Amazon S3 内の非構造化データのアドホック分析に Amazon EMR での Spark を使用しています。GumGum では、Spark のパフォーマンス強化によって、これらのワークフローにかかる時間とコストを節約しました。
Hearst Corporation
多角的な大規模メディア情報企業である Hearst Corporation には、200 を超えるウェブプロパティのコンテンツを閲覧する顧客が存在します。Amazon EMR で Apache Spark Streaming を使用することにより、Hearst の編集スタッフは、どの記事が好調で、どのテーマが話題になっているのかに関するリアルタイムの動向を常時把握できます。
CrowdStrike
CrowdStrike は、侵害を阻止するためのエンドポイント保護を提供しています。Amazon EMR と Spark を使用することで、数百テラバイトものイベントデータを処理し、ホストでより高レベルな動作記述にまとめています。CrowdStrike は、このデータを用いることでイベントデータをまとめ、悪意のあるアクティビティの存在を特定することができます。