MapReduce
MapReduceとは
MapReduceとは、ビッグデータの処理に広く使用されているデータ分析エンジンであるHadoopで動作するプログラミングモデルです。このモデルをベースにして、クラスターに格納された大容量データを処理するために並列で実行されるアプリケーションを作成します。
柔軟な適応力
MapReduceのパフォーマンスは他のモデルよりかなり遅いものですが、その大きなメリットは柔軟な適応力で、すばやくスケーリングし、コンピュート時間を短縮するために多数のコンピューターノードを割り当てられます。MapReduceでは数千単位のノードにスケーリングできます。これを可能にしているのは、主に分散型ファイルシステムと、データ自体を移動するのではなくデータの近くでプロセスを実行する機能です。このスケーラビリティにより、絶え間なく増大するデータボリュームを格納し処理する費用を削減します。
並列処理
MapReduceには、並列処理やデータの配分など複雑なタスクがあらかじめ組み込まれています。そのため、デベロッパーが新たにコーディングする必要はありません。これだけで分析のプログラミング時間を短縮します。
非構造化データのサポート
生成されるデータの大部分 (80パーセント) は、非構造化データが占めています。このため、あらゆるタイプのデータ構造をサポートするMapReduceを利用することにより、エンタープライズが行うデータ分析の効率は格段に向上します。
フォールトトレランス
MapReduceはシステムの停止につながるハードウェア障害の影響を受けにくくなっています。多数のコンピューターやサーバー間にデータを分散して処理するためです。MapReduceはネットワークの各ノードにデータの完全なセットを送信します。1つのノードやハードウェアの一部が故障した場合でも、データは残っているため自動的にリカバリされます。
MapReduceの仕組み
MapReduceの処理は3つの段階に分けられます。オプションで第4段階があります。
- マッパー: 第1段階で、すべてのノードにあるデータから条件ロジックでキー値ペアを選別します。「キー」は各レコードのオフセットアドレスを表し、「値」にはすべてのレコードコンテンツが含まれます。
- シャッフル: 第2段階で、マッピングからの出力値がソートされ、まとめられます。それぞれの値は類似キーに従ってグループにまとめられ、重複する値は破棄されます。シャッフル段階では、出力もキーと値ペアに整えられますが、この時点では値は、1つのレコードのコンテンツではなく一定範囲を示します。
- リデューサー: 第3段階で、統合されたシャッフル段階からの出力が、対応するキーに追加されたすべての値で集約されます。続いて、これは単一の出力ディレクトリに結合されます。
- コンバイナー: この段階の実行は、MapReduceジョブのパフォーマンスを最適化し、ジョブフローを高速化します。ここでは、マッパー出力が取得され、重複がないかノードレベルで調べられた後、単一のキーと値のペアに結合されます。これにより、シャッフル段階の完了に必要な処理が削減されます。
これらの段階を完了する方法に関しては、2つのデーモンサービス (リソースマネージャーおよびノードマネージャー) で構成されたアーキテクチャーにおいて、マッパータスクとリデューサータスクの実行、タスクの監視、失敗した場合に再実行が行われます。これら2つのサービスは、すべてのMapReduceジョブにおける並列処理とフォールトトレランスコンポーネントも管理します。
この構造に沿って、リソース管理機能とスケジュール設定/モニタリング機能は、異なるデーモン、グローバルリソースマネージャーおよび各アプリケーションのアプリケーションマネージャーに分割されます。
ジョブが投入されると、リソースマネージャーが、稼働しているすべてのアプリケーションのクラスターリソース割り当てを調整します。リソースマネージャーは、アプリケーションマスターとノードマネージャーとともに動作し、ジョブを担当するノードを決定します。続いて、アプリケーションマスターと1つまたは複数のノードマネージャーが調整します。ノードマネージャーは、ジョブを実行するためのコンピュートコンテナを実際に起動しモニターします。
企業でMapReduceを利用する方法
データ処理の市場が成熟するにつれて、MapReduceのマーケットシェアは1パーセント未満に低下しています。それにもかかわらず、米国では1500社近い企業で現在も使用されおり、米国以外では使用が増加している国もあります。
MapReduceは、主にコンピューターソフトウェアおよびITサービス業界で使用されています。他にもファイナンシャルサービス、医療ヘルスケア、高等教育、小売り、保険、通信、銀行などの業種で使用されています。次に使用事例をいくつか示します。
- ファイナンシャルサービス: 小売銀行ではHadoopシステムを使用して、連邦の各規制に適合するようにデータの精度と質の妥当性を確認しています。
- ヘルスケア: あるヘルスIT企業ではHadoopシステムを使用して、数年分の請求と支払いデータのアーカイブを作成しています。毎日テラバイト単位のデータが処理され、分析目的で保存されています。患者に装着した各センサーから定期的に膨大なデータストリームを収集することによって、患者のバイタルを監視している病院システムもあります。
- ITサービス: ある大手ITサービスプロバイダーでは、顧客サイトに展開したストレージシステムから診断データを収集しています。ここではHadoopシステムを使用して、非構造化ログおよびシステム診断情報に対してMapReduceを実行しています。
- 研究: 現在進行中のヒトゲノムプロジェクトに関する研究では、Hadoop MapReduceを使用して、膨大なデータが処理されています。また、家系遺伝子調査で有名なプロバイダーは、増え続ける大量の遺伝子配列データを扱っています。これには出生、死亡、国勢調査結果、軍や入国記録に関する構造化および非構造化データがあり、そのサイズはペタバイト単位で、増大の一途をたどっています。
- 小売り: ある業界トップのオンラインマーケットプレイスでは、MapReduceを使用して、顧客の行動や検索の推奨事項などを決定するために大量のログデータを分析しています。Hadoopシステムを通じてマーケティングキャンペーンデータを処理し、ターゲットキャンペーンを個人の顧客のレベルに絞り込むための有益な情報を引き出している大手デパートもあります。
- 通信: ある大手通信事業者は、顧客がリアルタイムでアクセスする数十億の通話記録を格納しており、処理するデータは数百テラバイトに達しています。
MapReduceにおけるHPEのサポート内容
HPEでは、MapReduceが動作するHadoopシステムの管理において、時間、費用、全従業員のリソースを節約できる複数のソリューションをご用意しています。
たとえば、HPE Pointnext Servicesでは、ビッグデータ分析環境の計画、設計、統合において、アドバイスと技術支援を行います。Hadoop (およびMapReduce) の設計と実装が簡素化されるため、情報に基づいたビジネス決定を行えるよう、分析による有益な情報を得ることに注力できます。
さらに、HPE GreenLakeではHadoopのライフサイクル全体を劇的に簡素化する拡張性に優れたソリューションを提供します。これは必須ハードウェア、ソフトウェア、対称および非対称環境のサポートを含む、エンドツーエンドソリューションです。HPE独自の価格設定/請求手法により、お客様はこれまでより容易に既存のHadoopのコストを把握し、ソリューションに関連する将来のコストを的確に予測できるようになります。
Hadoop環境を支援してきた長年のカスタマーエンゲージメントエクスペリエンスに従って、HPEはテスト済みですぐに実装可能なエンタープライズグレードのHadoopソリューションを2エディション考案しました。これらはHPE Insight Cluster Management Utilityにより補完されますが、これによりIT I&Oリーダーは、インフラストラクチャのプロビジョニング、管理、監視およびHadoop実装の選択を迅速に実行できます。なお、HPEエンタープライズグレードHadoopソリューションのスタンダードエディションは、HPE GreenLakeソリューションでサポートすることが可能です。