Apache™ Hadoop® は、大規模データセットの効率的な処理に使用できるオープンソースソフトウェアプロジェクトです。データの処理と保存を単独の大型コンピューターで行う代わりに、Hadoop では商用ハードウェアをクラスター化して、巨大なデータセットの分析を並列実行できます。
Hadoop エコシステムには多数のアプリケーションと実行エンジンが存在し、分析ワークロードのニーズに合わせてさまざまなツールが提供されています。Amazon EMR によって、すべて設定されて伸縮自在である Amazon EC2 インスタンスのクラスターを簡単に作成して管理できます。それは、Hadoop および Hadoop エコシステム内の他のアプリケーションを実行します。
Hadoop は、一般的に MapReduce (実行フレームワーク)、YARN (リソースマネージャー) および HDFS (分散ストレージ) を含む実際の Apache Hadoop プロジェクトを指します。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 プロジェクト内のアプリケーションがプログラムでインストールされ、設定されます。Hive や Pig といった追加アプリケーションのインストールも選択できます。
Hadoop 内の実行エンジンである Hadoop MapReduce は、Amazon EMR クラスター内のノードに分散させられるように、ジョブを小さな作業に分割する MapReduce のフレームワークを使用してワークロードを処理します。Hadoop MapReduce エンジンは、クラスター内のどのマシンにも障害が発生する可能性を考慮に入れて構築されており、耐障害性のある設計になっています。タスクを実行中のあるサーバーに障害が発生すると、Hadoop はそのタスクが完了するまで、タスクを別のマシンで実行します。
MapReduce プログラムを Java で記述することができますし、Hadoop Streaming を使用したカスタムスクリプトの並列実行、Hive および Pig (Amazon EMR クラスターにこれらのアプリケーションをインストールするよう選択した場合) による MapReduce の高レベルの抽象化、または Hadoop と連携する他のツールも使用できます。
Hadoop 2 以降、リソース管理は Yet Another Resource Negotiator (YARN) によって管理されます。YARN によって、全クラスターのリソースすべてが追跡され、処理のジョブタスクを実行するためそれらのリソースが動的に割り当てられます。YARN によって、Hadoop MapReduce ワークロードを管理できるほか、Apache Spark、Apache Tez といったその他の分散型プラットフォームも管理できます。
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 では、入力データが Amazon S3 に存在する場合でも、Hadoop MapReduce ジョブ内で作成された中間データには HDFS とローカルディスクを使用するよう、Hadoop を設定できます。
新しい Hadoop クラスターを動的にすばやく初期化することや、既存の Amazon EMR クラスターにサーバーを追加することができ、ユーザーやデータサイエンティストがリソースを利用できるようになるまでの時間を大幅に短縮します。Hadoop を AWS プラットフォームで使用することにより、実験や開発のためのリソース割り当てにかかるコストと時間が減少し、組織としての俊敏性が向上します。
Hadoop の設定、ネットワーキング、サーバーインストール、および継続的な管理メンテナンスは複雑で挑戦となるアクティビティになる場合があります。マネージドサービスとして、Hadoop のインフラストラクチャ要件は Amazon EMR によって処理されるため、コアビジネスに専念することができます。
Hadoop 環境を、Amazon EMR に加えて Amazon S3、Amazon Kinesis、Amazon Redshift、および Amazon DynamoDB といった他のサービスと簡単に統合して、AWS プラットフォームのさまざまなサービスでデータの移動、ワークフロー、および分析が行えます。
Hadoop のジョブの多くは本質的にスパイクが発生しやすいものです。例えば、ETL ジョブは 1 時間ごと、1 日ごと、1 か月ごとに実行される場合がありますが、一方で金融会社や遺伝子配列のモデリングジョブは年に数回のみ発生するという場合があります。Amazon EMR で Hadoop を使用することで、これらのワークロードのクラスターを簡単に立ち上げ、結果を保存することができ、必要がなくなった Hadoop リソースをシャットダウンすれば、不要なインフラストラクチャのコストを削減できます。
Amazon EMR で Hadoop を使用することで、どの AWS リージョン内のものでも、必要な数のアベイラビリティーゾーンにクラスターを起動できる柔軟性が実現されます。1 つのリージョンやゾーンに対する潜在的な問題や脅威は、別のゾーンにクラスターを起動することで数分のうちに簡単に回避できます。
Hadoop 環境をデプロイする前にキャパシティープランを立てた場合、しばしば高価なリソースのアイドル状態や、リソースの制限という結果が発生します。Amazon EMR では、必要なだけの容量にアクセスし、必要に応じてリソースの増減や、スケールアップやスケールダウンの実行をわずか数分の通知で行うことができます。
Hadoop は非常にスケーラブルであるため、ビッグデータワークロードの処理に広く使用されています。Hadoop クラスターの処理能力を向上させるには、ニーズに対応するために必要な CPU とメモリを有するサーバーを追加します。
Hadoop では高いレベルの耐久性と可用性が実現されており、コンピューティング分析ワークロードを並列処理することも可能です。処理の可用性、耐久性、スケーラビリティによって、Hadoop はビッグデータワークロードに適したものとなっています。Amazon EMR を使用することで、数分のうちに Hadoop が動作する Amazon EC2 インスタンスのクラスターを作成および設定することができ、データから価値を引き出すことができるようになります。
Hadoop は、クリックストリームデータを分析して、ユーザーを区分することやユーザーの好みを把握する目的に使用できます。広告主もクリックストリームや宣伝のインプレッションログを分析することで、より効果的な宣伝の配信に活用できます。
Hadoop はウェブやモバイルアプリケーションで生成されたログの処理にも使用できます。Hadoop は、ペタバイト級の非構造化データや半構造化データからアプリケーションやユーザーに関する有益な洞察を得るのに役立ちます。
Hive などの Hadoop エコシステムアプリケーションでは、SQL インターフェイスを使用した Hadoop MapReduce を活用し、巨大なスケールの耐障害性を持つ分散型データハウジングを実現できます。Hadoop を使用してデータを保存し、ユーザーがどのようなサイズのデータによってもクエリを送信できるようになります。
Netflix が Amazon EMR で Hadoop を使用してペタバイトスケールのデータウェアハウスを運用している方法 »
Hadoop では、膨大な量のゲノミクスデータや、その他の大量の科学データセットをすばやく効率的に処理することもできます。1000 人ゲノムプロジェクトのデータは、AWS で無料でコミュニティに公開されています。
低コストながら大規模なスケーラビリティをそなえた Hadoop は、ビッグデータの収集、ソート、結合および集計を行って下流のシステムで使用しやすいデータセットを準備する、一般的な ETL ワークロードに理想的だといえます。
Euclid が ETL とデータ集計に Amazon EMR の Hadoop を使用している方法 »
Apache および Hadoop は Apache Software Foundation の登録商標です。