Amazon EMR の開始方法
EMR の使用方法
1.お好みの EMR デプロイモデルを選択します
Amazon EMR を使うと、Apache Spark、Hive、Flink、Trino などのオープンソースツールを使用して膨大な量のデータを処理できます。次のお好みの EMR デプロイモデルを選択するだけです。
- EMR Serverless: クラスターを管理せずにアプリケーションを実行し、ワークロードに基づいてリソースを自動的にスケールアップ/スケールダウンします
- EC2 上の EMR: インスタンスタイプやカスタム AMI を含む、クラスター設定のコントロール向け。
- EMR on EKS: 共有された Amazon EKS クラスター上の他の Kubernetes ベースのアプリケーションと分析を統合します。
2.データ処理アプリケーションを開発
Amazon EMR は幅広いフレームワークと言語をサポートしているため、標準の ETL パイプラインから大規模な生成 AI データ準備まで、あらゆるものを構築できます。
言語: データサイエンスと機械学習には Python (PySpark) を、分析クエリには SQL (Hive または Trino 経由) を、ハイパフォーマンスな Spark アプリケーションには Java と Scala を使用します。
フレームワーク: 大規模なデータ処理には Apache Spark、リアルタイムストリーミングには Apache Flink、複数のデータソースにわたる高速 SQL には Trino、トランザクションデータレイクの管理には Apache Hudi または Iceberg を使用してアプリケーションを構築して実行します。
3.データを準備して取り込み
処理を開始するには、データが Amazon EMR にアクセスできる必要があります。Amazon S3 は EMR アプリケーションの標準ストレージレイヤーですが、ローカル環境や他の AWS サービスからデータを移動する高速方法がいくつかあります。
- 直接アップロード: すぐに処理するには、AWS マネジメントコンソール、CLI、または SDK を使用してオブジェクトを Amazon S3 に直接アップロードします。
- 高速接続: AWS Direct Connect を使用してパブリックインターネットをバイパスし、データセンターから AWS へのプライベートな専用ネットワーク接続を確立します。これにより、大規模な転送を行う際に帯域幅が一定になり、レイテンシーが減少します。
- リアルタイムストリーミング: Amazon Data Firehose または Amazon Managed Streaming for Apache Kafka (MSK) を使用すると、生成されたデータを直接 EMR アプリケーションに送り、ほぼリアルタイムの分析が可能になります。
- ゼロ ETL 統合: ゼロ ETL 機能を使用して Amazon Aurora または Amazon Redshift のデータを分析します。これにより、EMR はパイプラインを手動で構築しなくても運用データにアクセスできます。
- ハイブリッドアクセス: データがローカルの Hadoop HDFS 環境にある場合は、S3 Connector を使用してデータを直接 EMR に読み込んだり、特定のデータセットをクラウドベースの処理用に同期したりできます。
4.起動と監視
Amazon EMR は、1 回限りのジョブを実行している場合でも、継続的な本番パイプラインを実行している場合でも、効率的なデプロイエクスペリエンスを提供します。
- EMR Studio 経由で起動: EMR Studio ノートブックを開き、サーバーレスアプリケーションまたは既存の EC2 クラスターにアタッチします。ワンクリックで、Spark または Hive のコードをフルマネージド環境で実行できます。
- サーバーレス: EMR サーバーレスを使用している場合は、コンソール、CLI、または API を介してジョブを送信します。EMR は、自動的に必要なコンピューティングとメモリを正確にプロビジョニングし、ピーク時にはスケールアップし、終了時にはゼロまでスケールダウンします。
- SageMaker Unified Studio 経由で起動: SageMaker Unified Studio 内では、サーバーレスノートブックを開いて EMR サーバーレスアプリケーションまたは EMR on EC2 クラスターに即座に接続できます。
5.実行の監視と最適化
EMR では、ボトルネックを特定してコストを自動的に最適化するのに役立つ組み込みツールを使用して、データパイプラインを可視化できます。
EMR マネジメントコンソール、AWS CLI、または SDK を使用してジョブの進行状況とクラスターの状態を監視します。EMR は Amazon CloudWatch とのネイティブ統合をもたらし、リアルタイムのメトリクス、ログ、自動アラートを実現します。
コンソールからライブおよび永続的な Spark UI または Tez UI に直接アクセスして、ライブジョブをリアルタイムでデバッグし、サーバーレスジョブが終了した後でもライブジョブをデバッグして、実行プランと DAG (Directed Acyclic Graphs) を確認できます。
サンプルクラスターを起動してみましょう。
トレーニングとヘルプ
-
概念実証の構築や EMR アプリケーションのチューニングでお困りですか? AWS には、EMR 専門のグローバルサポートチームがあります。短期 (2~6 週間) 有料サポート契約の詳細については、お問い合わせください。
Big Data on AWS コースは、ビッグデータワークロードのために Amazon Web Services を利用する方法をハンズオンエクスペリエンスで学習できるように計画されています。AWS では、Amazon EMR ジョブを実行し、Pig や Hive のような広範な Hadoop ツールを利用してデータを処理する方法を紹介します。また、Amazon DynamoDB と Amazon Redshift を利用してクラウドにビッグデータ環境を作成し、Amazon Kinesis の利点を理解し、分析、セキュリティ、費用対効果のためにビッグデータ環境を設計できるようにベストプラクティスを活用する方法を紹介します。ビッグデータコースの詳細については、こちらをクリックしてください。
Scale Unlimited では、EMR などのビッグデータ技術の使い方を短期間で習得したいお客様に合わせてカスタマイズした、企業向けオンサイトトレーニングを提供しています。詳細については、こちらをクリックしてください。