Apache™ Hadoop® は、大規模データセットの効率的な処理に使用できるオープンソースのソフトウェアプロジェクトです。データの処理と保存を単独の大型コンピュータで行う代わりに、Hadoop では商用ハードウェアをクラスター化して、巨大なデータセットの分析を並列実行できます。

Hadoop エコシステムには多数のアプリケーションと実行エンジンが存在し、分析ワークロードのニーズに合わせてさまざまなツールが提供されています。Amazon EMR では、すべてが設定済みの伸縮自在な Amazon EC2 インスタンスクラスターを簡単に作成および管理できます。これらのクラスターでは、Hadoop と、Hadoop エコシステム内の他のアプリケーションを実行します。

Hadoop エコシステム内のアプリケーションとフレームワーク

Hadoop とは、一般的に MapReduce (実行フレームワーク)、YARN (リソースマネージャー)、HDFS (分散ストレージ) を含む実際の Apache Hadoop プロジェクトを指します。Hadoop MapReduce の代わりに実行エンジンとして使用できる次世代のフレームワークである Apache Tez をインストールすることもできます。Amazon EMR には、Hadoop からストレージレイヤーとして Amazon S3 を使用するためのコネクタである EMRFS も含まれています。

さらに、Hadoop エコシステムには、低レイテンシークエリを実現するツール、インタラクティブなクエリ実行のための GUI、SQL などのさまざまなインターフェイス、分散型 NoSQL データベースといった他のアプリケーションやフレームワークも含まれています。Hadoop エコシステムには、Hadoop のコアコンポーネントに追加機能を構築するために設計されたオープンソースのツールが多数含まれており、Amazon EMR を使用することで、Hive、Pig、Hue、Ganglia、Oozie、HBase といったツールを簡単にクラスターにインストールして設定することができます。Hadoop に加えて、インメモリ処理用の Apache Spark や、インタラクティブ SQL 用の Presto といった他のフレームワークも Amazon EMR で実行できます。

Hadoop: 基本コンポーネント

Amazon EMR では、クラスターのノード間で、Hadoop MapReduce、YARN、HDFS、Apache Tez といった Hadoop プロジェクト内のアプリケーションがプログラムによってインストールされ、設定されます。

Hadoop MapReduce、Tez、YARN を使った処理

Hadoop MapReduce と Tez は Hadoop エコシステム内の実行エンジンで、ジョブを小さな部分に細分化するフレームワークを使用してワークロードを処理します。細分化されたジョブは、Amazon EMR クラスター内の複数のノードに分散できます。Hadoop MapReduce と Tez は、クラスター内のどのマシンにも障害が発生する可能性があることを考慮に入れて構築されており、耐障害性のある設計になっています。タスクを実行しているサーバーに障害が発生した場合は、Hadoop により、そのタスクが完了するまで別のマシンで再実行されます。

Java で MapReduce や Tez のプログラムを記述すること、Hadoop Streaming を使用してカスタムスクリプトを並列実行すること、MapReduce や Tez の高レベルな抽象化のために Hive や Pig を利用すること、Hadoop とのやり取りに他のツールを利用することができます。

Hadoop 2 以降、リソース管理は Yet Another Resource Negotiator (YARN) によって管理されます。YARN によって、全クラスターのリソースすべてが追跡され、処理のジョブタスクを実行するためそれらのリソースが動的に割り当てられます。YARN を使うと、Hadoop MapReduce や Tez のワークロード、および Apache Spark といった他の分散フレームワークを管理できます。

Amazon S3 と EMRFS を使用したストレージ

Amazon EMR クラスターで EMR ファイルシステム (EMRFS) を使用することで、Hadoop のデータレイヤーとして Amazon S3 を活用できます。Amazon S3 は高度にスケーラブル、低コストで、かつ耐久性を備えた設計になっているため、ビッグデータ処理向けのデータストアとして非常に優れています。Amazon S3 にデータを保存することで、コンピューティングレイヤーとストレージレイヤーを分離させることができるため、クラスターのストレージを最大にするためにクラスターにノードを追加することなく、ワークロードに必要な CPU とメモリに合わせて Amazon EMR クラスターのサイズを設定できます。さらに、Amazon EMR クラスターがアイドル状態の場合は、終了することでコストを節減できます。この場合もデータは Amazon S3 に残ります。

EMRFS は、Hadoop で Amazon S3 に並列で高パフォーマンスの読み書きが直接行えるよう最適化されており、Amazon S3 のサーバー側とクライアント側の暗号化により暗号化されたオブジェクトを処理できます。EMRFS では、Amazon S3 をデータレイクとして使用でき、Amazon EMR の Hadoop を伸縮自在なクエリレイヤーとして使用できます。

HDFS によるクラスターストレージ

Hadoop には、クラスターのローカルディスクに大きなブロックでデータを保存する分散ストレージシステムである Hadoop Distributed File System (HDFS) が含まれています。HDFS ではレプリケーション係数を設定でき (デフォルトは 3x)、可用性と耐久性が強化されています。HDFS によってレプリケーションがモニタリングされ、ノードの障害と新しいノードの追加に応じて、ノード間のデータのバランスが調整されます。

HDFS は Hadoop とともに Amazon EMR クラスターに自動的にインストールされ、HDFS と Amazon S3 を併用して入出力データを保存できます。Amazon EMR のセキュリティ設定を使用すると、HDFS を簡単に暗号化できます。また、Amazon EMR では、入力データが Amazon S3 に存在する場合でも、Hadoop MapReduce ジョブ内で作成された中間データに対して HDFS とローカルディスクを使用するよう、Hadoop を設定できます。

Hadoop を Amazon EMR で運用する利点

速度と俊敏性の向上

新しい Hadoop クラスターを動的にすばやく初期化することや、既存の Amazon EMR クラスターにサーバーを追加することができ、ユーザーやデータサイエンティストがリソースを利用できるようになるまでの時間を大幅に短縮します。Hadoop を AWS プラットフォームで使用することにより、実験や開発のためのリソース割り当てにかかるコストと時間は削減され、組織としての俊敏性が向上します。

管理の複雑さを軽減

Hadoop の設定、ネットワーク、サーバーインストール、セキュリティ設定、継続的な管理メンテナンスは、複雑で困難なアクティビティになる可能性があります。マネージドサービスの Amazon EMR では Hadoop のインフラストラクチャ要件が処理されるため、ユーザーはコアビジネスに専念することができます。

他の AWS サービスとの統合

Hadoop 環境を Amazon S3Amazon KinesisAmazon RedshiftAmazon DynamoDB といったその他のサービスと簡単に統合して、AWS プラットフォームのさまざまなサービスでデータの移動、ワークフロー、分析が行えます。さらに、AWS Glue データカタログを Apache Hive や Apache Spark のマネージドメタデータレポジトリとして使用できます。

必要なクラスターに対してのみ支払う

Hadoop のジョブの多くは本質的にスパイクが発生しやすいものです。例えば、ETL ジョブは 1 時間ごと、1 日ごと、1 か月ごとに実行される場合がありますが、一方で金融会社や遺伝子配列のモデリングジョブは年に数回のみ発生するという場合があります。Amazon EMR で Hadoop を使用することで、これらのワークロードのクラスターを簡単に立ち上げ、結果を保存することができ、必要がなくなった Hadoop リソースをシャットダウンすれば、不要なインフラストラクチャのコストを削減できます。 EMR6.x は、Hadoop3 をサポートしており、これにより、YARN NodeManager は、EMR クラスターホスト上で直接、または Docker コンテナ内でコンテナを起動できます。詳細については、ドキュメントをご覧ください。

可用性と災害対策の向上

Amazon EMR で Hadoop を使用することで、どの AWS リージョン内においても、必要な数のアベイラビリティーゾーンにクラスターを起動できる柔軟性が実現されます。1 つのリージョンやゾーンに対する潜在的な問題や脅威は、別のゾーンにクラスターを起動することで数分のうちに簡単に回避できます。

柔軟なキャパシティー

Hadoop 環境をデプロイする前にキャパシティープランを立てた場合、しばしば高価なリソースのアイドル状態や、リソースの制限という結果が発生します。Amazon EMR では、必要なキャパシティーを持つクラスターを数分で作成でき、EMR マネージドスケーリングを使用してノードを動的にスケールアウトおよびスケールインできます。

Hadoop とビッグデータの関係

Hadoop は非常にスケーラブルであるため、ビッグデータワークロードの処理に広く使用されています。Hadoop クラスターの処理能力を向上させるには、ニーズに対応するために必要な CPU とメモリを有するサーバーを追加します。

Hadoop では高いレベルの耐久性と可用性が実現されており、コンピューティング分析ワークロードを並列処理することも可能です。処理の可用性、耐久性、スケーラビリティによって、Hadoop はビッグデータワークロードに適したものとなっています。Amazon EMR を使用することで、数分のうちに Hadoop が動作する Amazon EC2 インスタンスのクラスターを作成および設定することができ、データから価値を引き出すことができるようになります。

ユースケース

クリックストリーム分析

Hadoop は、クリックストリームデータを分析して、ユーザーを区分することやユーザーの好みを把握する目的に使用できます。広告主もクリックストリームや宣伝のインプレッションログを分析することで、より効果的な宣伝の配信に活用できます。

Razorfish が Amazon EMR でクリックストリームに Hadoop を使用している方法 »

ログ処理

Hadoop はウェブやモバイルアプリケーションで生成されたログの処理にも使用できます。Hadoopは、ペタバイト単位の非構造化データまたは半構造化データを、アプリケーションまたはユーザーに関する有益なインサイトに変換するのに役立ちます。

Yelp が Amazon EMR で Hadoop を使用して主なウェブサイト機能を推進した方法 »

ペタバイトスケールの分析

Hive などの Hadoop エコシステムアプリケーションでは、SQL インターフェイスを使用した Hadoop MapReduce を活用し、巨大なスケールの耐障害性を持つ分散型データウェアハウジングを実現できます。Hadoop を使用してデータを保存し、ユーザーがどのようなサイズのデータによってもクエリを送信できるようになります。

Netflix が Amazon EMR で Hadoop を使用してペタバイトスケールのデータウェアハウスを運用している方法 »

ゲノミクス

Hadoop では、膨大な量のゲノミクスデータや、その他の大量の科学データセットをすばやく効率的に処理することもできます。1000 人ゲノムプロジェクトのデータは、AWS で無料でコミュニティに公開されています。

AWS でのゲノミクスの詳細 »

ETL

低コストながら大規模なスケーラビリティをそなえた Hadoop は、ビッグデータの収集、ソート、結合および集計を行って下流のシステムで使用しやすいデータセットを準備する、一般的な ETL ワークロードに理想的だといえます。

Euclid が ETL とデータ集計に Amazon EMR の Hadoop を使用している方法 »

Apache および Hadoop は Apache Software Foundation の登録商標です。

Amazon EMR の料金の詳細

料金表のページを見る
構築を始めましょう。
Amazon EMR の開始方法
ご不明な点がおありですか?
お問い合わせ