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

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

AWS 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 で実行できます。

Amazon EMR では、クラスターのノード間で、Hadoop MapReduce、YARN、HDFS といった Hadoop プロジェクト内のアプリケーションがプログラムによってインストールされ、設定されます。ただし、Amazon EMR リリース 5.x 以降については、Hive や Pig で、実行エンジンとして Hadoop MapReduce の代わりに Apache Tez が使用されます。

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 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 を伸縮自在なクエリレイヤーとして使用できます。

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 を設定できます。

AWS における Hadoop 動作の例
Hadoop をクラウドで運用する利点 – スピードアイコン

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

Hadoop をクラウドで運用する利点 – 複雑さの軽減アイコン

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

Hadoop をクラウドで運用する利点 – 統合アイコン

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

Hadoop をクラウドで運用する利点 – 節約アイコン

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

Hadoop をクラウドで運用する利点 – 可用性アイコン

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

Hadoop をクラウドで運用する利点 – 柔軟性アイコン

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

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 でのゲノミクスの詳細 »

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

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

 



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