Amazon EMR では、必要なキャパシティを迅速かつ簡単にプロビジョニングでき、キャパシティを自動または手動で追加、削除できます。これは、処理要件が変動しやすい、または予測不可能な場合に非常に便利です。たとえば、処理のほとんどが夜間に発生する場合、日中は 100 インスタンス、夜間は 500 インスタンスが必要になるかもしれません。または、短期間の間に大量のキャパシティが必要な場合もあるかもしれません。Amazon EMR では、数百、数千のインスタンスをすばやくプロビジョニングし、コンピューティング要件に合わせて自動的にスケールし、ジョブが完了したら (アイドルキャパシティへの支払いを避けるために) クラスターをシャットダウンすることができます。

Amazon EMR の使用を開始する

まずは無料で始める

サポートが必要ですか? お問い合わせください。

elastic

能力の追加と削除における主な 2 つのオプションは次のとおりです。

複数のクラスターのデプロイ: より多くの能力が必要な場合は、簡単に新しいクラスターを起動することができ、必要なくなれば停止させることができます。使用するクラスターの数に制限はありません。複数のユーザーやアプリケーションを使用している場合は、複数のクラスターを使用すると便利です。たとえば、入力データを Amazon S3 に保管し、データ処理の必要な各アプリケーションでそれぞれ 1 つのクラスターを起動することができます。たとえば、1 つのクラスターは CPU に最適化し、もう 1 つのクラスターはストレージなどに最適化するといった具合です。

実行中のクラスターのサイズ変更: Amazon EMR では、実行中のクラスターの自動スケーリング手動によるサイズ変更が簡単に行えます。 クラスターを一時的にスケールアウトする、クラスターに処理能力を追加する、またはクラスターをスケールインしてアイドルキャパシティがある場合のコストを節減することもできます。例えば、一部のお客様は、バッチ処理が発生した場合に数百のインスタンスをクラスターに追加し、処理の完了後に余分なインスタンスを削除しています。クラスターにインスタンスを追加すると、EMR はプロビジョニングされたキャパシティを、それが使用できるようになった時点ですぐに利用開始できます。スケールイン時には、EMR によりアイドル状態のノードが積極的に選択され、実行中のジョブへの影響を軽減します。

Amazon EMR は大量データの処理にかかる費用を節約することを目的としています。低価格を実現する特徴の例として、低価格な秒ごとの課金、Amazon EC2 スポットとの統合、Amazon EC2 リザーブドインスタンスとの統合、伸縮性、Amazon S3 との統合があります。

秒単位での低料金設定: Amazon EMR の料金は 1 秒ごとに課金され、最小課金時間は 1 分となっています。スモールインスタンス (年間 131.40 USD) の場合、1 インスタンス時間あたり 0.015 USD から開始します。詳細については、「料金」セクションを参照してください。

Amazon EC2 スポットとの統合: Amazon EC2 スポットインスタンスでは、Amazon EC2 の能力の価格をお客様が指定できます。特定のインスタンスタイプを実行するためにお客様が支払いたい最大時間料金を指定することができます。入札価格がその時点のスポット価格を上回っている間はインスタンスを使用し続けることができ、通常はオンデマンド価格の何分の 1 かの支払いで済みます。スポット価格は、インスタンスの需要と供給の関係に基づいて変動します。しかしお客様が、指定した上限価格を超える金額を支払うことはありません。Amazon EMR では、スポットインスタンスの使用が簡単になるため、時間と費用の両方の節約が実現します。Amazon EMR クラスターには HDFS を実行する「コアノード」と、実行しない「タスクノード」があります。スポット価格が上がってインスタンスが失われる場合を考慮すると、HDFS に保管されたデータを失わないためにスポットにはタスクノードが適しています。(コアノードとタスクノードの詳細。)

Amazon EC2 リザーブドインスタンスとの統合: Amazon EC2 リザーブドインスタンスでは、伸縮自在なコンピューティングの利点はそのままで、コストの削減と容量の予約が可能です。リザーブドインスタンスを使用すれば、低額の 1 回限りの予約金を支払うことによって、そのインスタンスの秒ごとの使用料金について、大幅な割引を受けることができます。Amazon EMR では、リザーブドインスタンスの活用を簡単に行えるため、オンデマンド価格と比較して最大 65% の節約が実現します。

伸縮自在性: Amazon EMR ではクラスターの自動スケーリングが簡単にできるので、余剰のキャパシティをプロビジョニングする必要はありません。たとえば、今後半年の間にクラスターで扱うデータ量が分からない場合や、または処理ニーズが急激に増える可能性があるとします。Amazon EMR ではいつでも簡単に能力を追加、削除できるため、今後の要件を予測する必要も、ピーク需要に備える必要もありません。

Amazon S3 Integration: EMR クラスターは、EMR File System (EMRFS) によって、Hadoop のオブジェクトストアとして Amazon S3 を効率的かつ安全に使用できます。データを Amazon S3 に保存し、複数の Amazon EMR クラスターを使用して同じデータセットを処理できます。各クラスターは特定のワークロードに最適化できるため、1 つのクラスターで要件の異なる複数のワークロードを処理するより効率的です。たとえば、I/O に最適化されたクラスターと、CPU に最適化されたクラスターで、それぞれ Amazon S3 の同じデータセットを処理することができます。さらに、入力および出力データを Amazon S3 に保管することで、不要になったクラスターをシャットダウンできます。

EMRFS は、Amazon S3 からの読み取りと S3 への書き込みのパフォーマンスが優れており、AWS Key Management Service (KMS) またはカスタマー管理型のキーを使用した S3 サーバー側または S3 クライアント側の暗号化に対応しています。また、メタデータで追跡されたオブジェクトのリストと書き込み後の読み取りの整合性をチェックする、整合性のあるビューを利用することもできます。また、Amazon EMR クラスターでは、EMRFS と HDFS の両方を使用できるので、クラスターのストレージと Amazon S3 のいずれかを選択する必要はありません。

AWS Glue データカタログの統合: AWS Glue データカタログをマネージドメタデータリポジトリとして使用して、Apache Spark や Apache Hive のために外部テーブルのメタデータを保存できます。また、スキーマの自動検出とバージョン履歴も利用できます。これによって、クラスター外部にある Amazon S3 の外部テーブルのために、メタデータを簡単に保持できます。

Amazon EMR では、Amazon S3、Hadoop Distributed File System(HDFS)、Amazon DynamoDB を含む複数のデータストアを利用できます。

DetailsPage_EMR-Diagram

Amazon S3: Amazon S3 は、耐久性の高い、スケーラブル、安全、高速、かつ低価格で使用できるストレージサービスです。Amazon EMR は、EMR File System(EMRFS)によって、Hadoop のオブジェクトストアとして Amazon S3 を効率的かつ安全に使用できます。Amazon EMR では、Amazon S3 に保管された大量のデータをシームレスに処理できるよう Hadoop に多数の改善点を追加しました。 また、EMRFS では、整合性のあるビューを使用して、Amazon S3 のオブジェクトのリストと書き込み後の読み取りの整合性をチェックできます。  EMRFS は、暗号化された Amazon S3 オブジェクトを処理するために S3 サーバー側または S3 クライアント側の暗号化に対応しており、ユーザーは AWS Key Management Service (KMS) またはカスタムキーベンダーを使用できます。

クラスターを起動すると、Amazon EMR は Amazon S3 からデータをクラスター内の各インスタンスにストリームし、ただちに処理を開始します。Amazon S3 にデータを保管して Amazon EMR でそれを処理するメリットの 1 つは、複数のクラスターを使用して同じデータを処理できる点です。例えば、メモリに合わせて最適化された Hive 開発クラスターと、CPU に合わせて最適化された Pig 運用クラスターがあり、いずれも同じ入力データセットを使用しているとします。

Hadoop Distributed File System (HDFS): HDFS は、Hadoop のファイルシステムです。Amazon EMR の現行のトポロジグループのインスタンスは、次の 3 つの論理インスタンスのグループ、つまり YARN リソースマネージャおよび HDFS 名前ノードサービスを実行するマスターグループ、HDFS データノードデーモンおよび YARN ノードマネージャサービスを実行するコアグループ、YARN ノードマネージャサービスを実行するタスクグループに属します。Amazon EMR では、コアグループのインスタンスに関連付けられたストレージに HDFS がインストールされます。

各 EC2 インスタンスは、「インスタンスストア」と呼ばれる、インスタンスにアタッチされた固定容量のストレージを備えています。また Amazon EBS ボリュームをインスタンスに追加することで、インスタンスのストレージをカスタマイズすることもできます。Amazon EMR では、汎用 (SSD)、プロビジョンド (SSD)、マグネティックのボリュームタイプを追加できます。EMR クラスターに追加された EBS ボリュームでは、クラスターがシャットダウンした後はデータを維持しません。EMR ではクラスターが終了すると、自動的にボリュームがクリーンアップされます。

また、Amazon EMR のセキュリティ設定を使用して HDFS の完全な暗号化を有効にすることも、Hadoop Key Management Server を使って手動で HDFS 暗号化ゾーンを作成することもできます。

Amazon DynamoDB: Amazon DynamoDB は高速な完全マネージド型の NoSQL データベースサービスです。Amazon EMR は Amazon DynamoDB と直接統合しているため、すばやく効率的に Amazon DynamoDB に保存されたデータを処理し、Amazon EMR で Amazon DynamoDB、Amazon S3、HDFS の間のデータを転送できます。

その他の AWS データストア: Amazon EMR のユーザーは、Amazon Relational Database Serviceクラウドでリレーショナルデータベースを簡単にセットアップ、運用、拡張できるウェブサービス)、Amazon Glacier(ストレージのセキュリティと耐久性を特徴としたデータのアーカイブやバックアップに適したきわめて低コストのストレージサービス)、Amazon Redshift(高速で完全管理型のペタバイト規模のデータウェアハウスサービス)も使用できます。AWS Data Pipeline は、AWS のコンピューティングサービス、ストレージサービス(Amazon EMR も含め)、オンプレミスのデータソース間で、データを指定間隔で確実に移動および処理するためのウェブサービスです。

Amazon EMR では Hive、Pig、HBase、および Impala などのパワフルかつ実績のある Hadoop ツールをサポートしています。また、Hadoop MapReduce に加えて、Spark や Presto などのブートストラップアクションを使用する分散コンピューティングフレームワークを実行できます。 クラスターで動作するアプリケーションとやり取りする際の GUI として、Hue と Zeppelin を使用することもできます。

Hive はオープンソースのデータウェアハウスであり、Hadoop の上で稼働する分析パッケージです。Hive は SQL ベースの言語である Hive QL で運用され、データの構造化、集約、問い合わせを行うことができます。Hive QL は標準的な SQL を超えるものであり、map/reduce 関数や、JSON や Thrift といった複雑で拡張可能なユーザー定義のデータタイプを完全にサポートしています。この能力により、テキスト文書やログファイルといった、複雑で構造化されていないデータソースの処理が可能となります。Hive では Java で書かれたユーザー定義の関数を使用したユーザー拡張が可能です。Amazon EMR では Amazon DynamoDB や Amazon S3 との直接統合など、Hive に多数の改善点を追加しました。たとえば、Amazon EMR では Amazon S3 から自動的にテーブルパーティションを読み込んだり、一時ファイルを使用せずに Amazon S3 のテーブルにデータを書き込んだり、カスタム map/reduce 操作のスクリプトや追加のライブラリといった Amazon S3 のリソースにアクセスしたりすることができます。Hive と Amazon EMR の詳細

Pig は Hadoop の上で実行されるオープンソースの分析パッケージです。Pig は SQL に類似した言語である Pig Latin で運用され、データの構造化、集約、問い合わせを行うことができます。Pig Latin では、SQL に類似した操作と同様、map/reduce 関数および複雑で拡張可能なユーザー定義のデータタイプのためにも、優れたサポートが提供されます。この能力により、テキスト文書やログファイルといった、複雑で構造化されていないデータソースの処理が可能となります。Pig では Java で書かれたユーザー定義の関数を使用したユーザー拡張が可能です。Amazon EMR では、複数のファイルシステムの使用(Pig は通常 1 つのリモートファイルシステムにのみアクセス可能)、カスタム JAR や Amazon S3 からのスクリプトの読み込み(例: 「REGISTER s3:///my-bucket/piggybank.jar」)、文字列と日時の処理に関する追加機能など、Pig に多数の改善点を追加しました。Pig と Amazon EMR の詳細

HBase は、Google の BigTable に基づいて設計されたオープンソースのリレーショナルでない分散データベースです。Apache Software Foundation の Hadoop プロジェクトの一部として開発され、Hadoop Distributed File System (HDFS)上で動作して、BigTable に似た機能を Hadoop で実現します。HBase では、列ベースの圧縮と保存を使用することにより、耐障害性に優れた効率的な方法で大量の疎データを保存できます。さらに、HBase ではデータがメモリ内にキャッシュされるため、高速なデータの参照が可能になっています。HBase は、シーケンシャル書き込み操作用に最適化されており、バッチ挿入、更新、および削除処理も非常に効率的です。HBase は、Hadoop のファイルシステムを共有して、Hadoop ジョブに対する直接入力および出力として機能することで、Hadoop とシームレスに連携します。また、HBase テーブルに対する SQL のようなクエリ、Hive ベースのテーブルとの結合、および Java Database Connectivity(JDBC)を有効にすることで、Apache Hive とも統合されます。Amazon EMR の使用時には、Amazon S3 を Apache HBase のデータストアとして使用できるため、コストの低減と運用の複雑さの軽減が可能になります。HDFS をデータストアとして使用する場合は、HBase を Amazon S3 にバックアップしたり、以前に作成したバックアップから復元したりすることができます。HBase と Amazon EMR の詳細

Phoenix により、低レイテンシーの SQL が Apache HBase に保存されているデータに対して ACID トランザクション機能を使用できるようになります。パフォーマンスを高めるためにセカンダリインデックスを簡単に作成し、同一の基盤となる HBase テーブルでさまざまなビューを作成できます。Amazon EMR における Phoenix の詳細

Impala は、SQL 構文を使用したインタラクティブなアドホッククエリを行う Hadoop エコシステムのオープンソースツールです。このツールでは、MapReduce の代わりに、従来のリレーショナルデータベース管理システム (RDBMS) で用いられる超並列処理 (MPP) エンジンに類似した MPP が活用されます。Implala と Amazon EMR の詳細

HUE は Hadoop 用のオープンソースのユーザーインターフェイスで、Hive クエリの実行と開発、HDFS のファイルの管理、Pig スクリプトの実行と開発、およびテーブルの管理を簡単に行えます。また Amazon EMR の HUE を Amazon S3 と統合し、Amazon S3 に対して直接クエリを発行することや、HDFS と Amazon S3 間で簡単にファイルを転送することができます。HUE と Amazon EMR の詳細

Spark は、容量の大きなデータセットを高速に処理するための、Hadoop エコシステムのエンジンです。インメモリの耐障害性のある RDD (Resilient Distributed Datasets)、および DAG (Directed Acyclic Graphs) を使用してデータ変換を定義します。Spark には、Spark SQL、Spark Streaming、MLlib、および GraphX も含まれています。 Amazon EMR における Spark の詳細

Prestoは、低レイテンシーでアドホックなデータ分析用に最適化されたオープンソースの分散 SQL クエリエンジンです。ANSI SQL 標準をサポートしており、複雑なクエリ、集計、結合、ウィンドウ関数を実行できます。Presto を使用して、Hadoop Distributed File System (HDFS) や Amazon S3 など、複数のデータソースのデータを処理できます。Amazon EMR における Presto の詳細

Zeppelin は、Spark を使用してデータ探索を実行するインタラクティブな共同作業用のノートブックを作成するためのオープンソースの GUI です。Scala、Python、SQL (Spark SQL を使用)、または HiveQL を使用してデータを操作し、結果を迅速に視覚化できます。 Zeppelin ノートブックは複数のユーザー間で共有可能で、視覚化した結果を外部のダッシュボードに公開できます。Amazon EMR における Zeppelin の詳細

Oozie は Hadoop のワークフロースケジューラーです。Oozie を使用して、アクションの Directed Acyclic Graphs (DAG) を作成できます。また、Hadoop ワークフローをアクションまたは時間で簡単にトリガーできます。Amazon EMR における Oozie の詳細

Tez は、最適化されたクエリプランと強化されたリソース管理からの高速なパフォーマンスを提供する Hadoop YARN に対する実行フレームワークです。Tez は Hadoop MapReduce ではなく Apache Hive および Apache Pig との併用が可能で、Tez UI を使用して実行計画を可視化できます。Amazon EMR における Tez の詳細

Flink は高スループットのデータソースでリアルタイムなストリーミング処理を簡単に実行できる、ストリーミングデータフローエンジンです。Flink は、順不同のイベントのイベントタイムセマンティクス、1 回のみのセマンティクス、背圧制御、ストリーミングアプリケーションとバッチアプリケーションの両方の記述用に最適化された API をサポートしています。EMR における Flink の詳細については、こちらを参照してください

その他: Amazon EMR では、R、Apache MXNet (深層学習)、Mahout (機械学習)、Ganglia (モニタリング)、Accumulo (安全な NoSQL データベース)、Sqoop (リレーショナルデータベースコネクタ)、HCatalog (テーブルおよびストレージ管理) といった一般的な各種アプリケーションやツールをサポートしています。 Amazon EMR チームはブートストラップアクションのオープンソースリポジトリを保守しています。このリポジトリは、追加ソフトウェアのインストールやクラスターの構成を行うために使用でき、独自のブートストラップアクションを作成する際のサンプルにもなります。

クラスターの調整: クラスターにプロビジョニングする EC2 インスタンスの種類(スタンダード、ハイメモリ、ハイ CPU、ハイ I/O など)を、ご使用のアプリケーションの要件に基づいて選択します。お客様はすべてのインスタンスへのルートアクセス権限を持ち、お客様の要件に合わせてクラスターを自在にカスタマイズできます。サポートされる Amazon EC2 インスタンスタイプの詳細

アプリケーションのデバッグ: クラスターでデバッグを有効にすると、Amazon EMR によってログファイルが Amazon S3 にアーカイブされ、そのログファイルにインデックスが付けられます。その後、コンソールのグラフィカルインターフェイスを使用して、ログを直観的な方法で閲覧できます。Amazon EMR ジョブのデバッグの詳細

クラスターの監視: Amazon CloudWatch を使用して、Map と Reduce タスクの平均実行数など、23 のカスタム Amazon EMR メトリクスを監視できます。また、これらのメトリクスにアラームを設定することもできます。Amazon EMR クラスターのモニタリングの詳細

イベントに対応: Amazon CloudWatch イベントの Amazon EMR イベントタイプを使用して、Amazon EMR クラスターの状態の変化に対応できます。すぐに設定できる簡単なルールを使用して、ルールに一致したイベントを Amazon SNS トピック、AWS Lambda 関数、Amazon SQS キューなどに振り分けることができます。Amazon EMR クラスターのイベントの詳細

繰り返し発生するワークフローのスケジュール設定: AWS Data Pipeline を使用して Amazon EMR に関連する繰り返しのワークフローをスケジュールできます。AWS Data Pipeline は、AWS のコンピューティングサービスやストレージサービス、およびオンプレミスのデータソースの間で、データを指定した間隔で確実に処理および移動するのに役立つウェブサービスです。Amazon EMR と Data Pipeline の詳細

Cascading: Cascading は、Hadoop MapReduce アプリケーションの作成と実行に使用するクエリ API、クエリプランナー、およびジョブスケジューラーを提供するオープンソースの Java ライブラリです。Cascading を使用して開発されたアプリケーションは、他のネイティブ Hadoop アプリケーションと同様に、コンパイルおよびパッケージ化されて標準的な Hadoop 互換 JAR ファイルになります。Cascading と Amazon EMR の詳細

深層学習: Apache MXNet などの一般的な深層学習フレームワークを使用して、深層ニューラルネットワークを定義、トレーニング、デプロイできます。これらのフレームワークは、Amazon EMR クラスターで GPU インスタンスと共に使用できます。Amazon EMR における MXNet の詳細

クラスターへのネットワークアクセスの制御: AWS クラウドの論理的に分離されたセクションである Amazon Virtual Private Cloud(VPC)でクラスターを起動することができます。独自の IP アドレス範囲の選択、サブネットの作成、ルートテーブルやネットワークゲートウェイの設定など、仮想ネットワーク環境を完全にコントロールできます。Amazon EMR と Amazon VPC の詳細

ユーザー、アクセス権、および暗号化の管理: IAM Users and Roles などの AWS Identity and Access Management (IAM) ツールを使用してアクセスと権限を制御できます。例えば、特定のユーザーに対してクラスターへの読み取りを許可するが書き込みのアクセス権は与えない、ということが可能になります。また、Amazon EMR のセキュリティ設定を使用すれば、Amazon S3 暗号化への対応や Kerberos 認証など、保管中および移動中の暗号化に関するさまざまなオプションを設定できます。 クラスターへのアクセス制御Amazon EMR 暗号化オプションの詳細を参照してください。

追加ソフトウェアのインストール: 追加ソフトウェアをクラスターにインストールするために、ブートストラップアクションや Amazon Linux を実行しているカスタム Amazon マシンイメージ (AMI) を使用できます。ブートストラップアクションとは、Amazon EMR がクラスターを起動したときにクラスターノードで実行されるスクリプトのことです。ブートストラップアクションは、Hadoop の開始前、およびノードによるデータ処理の開始前に実行されます。カスタム Amazon Linux AMI にソフトウェアを事前にロードして使用することもできます。Amazon EMR のブートストラップアクションカスタム Amazon Linux AMIについての詳細。

データの効率的なコピー: オープンソースツール Distcp の拡張である Amazon EMR の S3DistCp では MapReduce を使用して大量のデータを効率的に移動させることができ、これを使用すれば大量のデータを Amazon S3 から HDFS、HDFS から Amazon S3、Amazon S3 バケット間ですばやく移動させることができます。S3DistCp の詳細

Hadoop ストリーミング: Hadoop ストリーミングは、Hadoop に付属しているユーティリティの 1 つであり、Java 以外の言語で MapReduce 実行可能ファイルを作成できるようになります。ストリーミングは JAR ファイルとして実装されます。Amazon EMR を使った Hadoop ストリーミングの詳細

Custom Jar: Java プログラムを書き、使用する Hadoop のバージョンにコンパイルして Amazon S3 にアップロードします。その後、Hadoop JobClient インターフェイスを使用して Hadoop ジョブをクラスターに送信します。Amazon EMR を使った Cusom Jar の処理の詳細

Amazon EMR は、以下のようなさまざまなサードパーティ製ソフトウェアツールと組み合わせて使用できます。

データ転送

モニタリング

パフォーマンスのチューニング

Graphical IDE

Hadoop ディストリビューション

BI/ビジュアライゼーション

ビジネスインテリジェンス

データ調査

BI/ビジュアライゼーション

Graphical IDE

BI/ビジュアライゼーション