- プラットフォームであるHadoopは、HDFSとMapReduceにより分散処理を実現
- HDFS 複数のストレージを一つのストレージのように扱う分散ファイルシステム
- MapReduce 複数のコンピュータを使って、効率的に分散処理を行う
Hadoopの概要
Hadoopは、
・テキスト
・画像
・ログ
などの構造化されていないデータを、高速に処理出来るオープンソースのプラットフォームです。
Hadoopは大規模なデータの処理に適しているだけではく、複数のコンピュータで処理を行う分散処理を可能としている点が特徴となっています。
従来の分残処理は処理を分散するだけものが多かったのですが、Hadoopの分散処理はデータも複数のコンピュータに分散させる事で、容易にスケールアウト出来るようになりました。
そのため、Hadoopを使えばビッグデータを処理するシステムは低コストで構築出来ると、注目を集めています。
分散処理を可能とするHDFSとMapReduce
Hadoopの分散処理機能を実現するのが、HDFSとMapReduceです。
分散ファイルシステムHDFSは複数のコンピュータのローカルディスクを、一つのストレージのように扱います。ローカルディスクを扱うのと同じ方法で分散ストレージを使えるので、特にユーザーが意識する事はありません。容易にスケールアウト出来ますから、ビッグデータを扱うのに最適なシステムを構築可能です。
MapReduceはMapフェーズとReduceフェーズにユーザーが処理を実装する事で、分散処理を実現します。MapReduceを有効に利用する事で一台のコンピュータでは長時間掛かるような操作でも、複数のコンピュータを使って短時間で処理する事が可能となります。
ビッグデータ分析基盤を低コストで構築出来る分析エンジン
ビッグデータを分析する基盤を構築するには、コストの掛かるデータウェアハウスなどを用意する必要があるため、なかなか導入出来ない企業も少なくありませんでした。
しかし、HadoopをベースとしたAmazon Elastic Mapreduceなどのビッグデータ分析エンジンが普及するようになって、比較的容易に導入出来る環境が整って来ています。
手軽に利用出来るクラウド型ビッグデータ分析エンジンと、ウェブサーバ・データベースサーバ・ワークフロー管理ツール・分析サーバなどを組み合わせる事で、短期間で低コストのビッグデータ分析基盤を構築する事が出来ます。
ビッグデータの分析基盤を構築する際の考え方のポイントは、「蓄積「処理「パイプライン」です。
ビッグデータ分析エンジンを使って分散処理する仕組み
Hadoopなどのクラウド型のビッグデータ分析エンジンを使って大量のデータを分析する場合のシステム構成は、複数のサーバから構成される分散処理システムとなります。
分散処理の流れとしては、ウェブサーバやアプリケーションサーバ上のデータを、分析エンジンに蓄積して、ツールを使って分析をするというものです。
分析サーバ上のデータが数億件以上になった時には、データマートを作るなどして、処理時間の短縮化を図る必要があります。レスポンス重視の場合、スループット重視の場合のシステム構成を下記に示します。
本サイト上に掲載されているまとめ記事が、毎週ステップメールで受け取ることもできます。
参考文献