AWSデータベース紹介編~AWSの様々なDBサービス編⑤~

Pocket

こんにちは!HEROです。

さて、前回までAWS DB編と題してDynamoDBやRedShiftについてご紹介させてただきましたが、今回はそれらと関係の深いサービスのEMRについてご紹介していきます。

▼ これまでの記事はこちら
AWSデータベース紹介編~AWSの様々なDBサービス編~
AWSデータベース紹介編~AWSの様々なDBサービス編②~
AWSデータベース紹介編~AWSの様々なDBサービス編③~
AWSデータベース紹介編~AWSの様々なDBサービス編④~

◯EMRって?

前回のおさらいです。

Elastic MapReduce

・Amazon Elastic MapRduce
通称EMRは大量のデータを迅速、容易にかつコスト効果よく処理するためのウェブサービスです。
Hadoopというオープンソースフレームワークを使用した分散処理をEC2をつかって拡大縮小可能なクラスターで行なうことができます。
ざっくりいうとPCを必要なだけならべて分散処理をする、といったイメージでしょうか。

◯Hadoop?

Hadoopとは、大規模データを効率的に分散処理するためのミドルウェアのことで、オープンソースとして公開されています。
キモカワイイこいつが目印のサービスです。

Hadoop

HadoopにはMapReduceとHDFSがあり前者は処理を分散、後者はファイルを分散する仕組みです。
PC一台では捌けなかったような大量なデータの分析やログデータの解析、データの分類や整形をデータベースで利用できる形へ加工するインデックス化、バッチ処理などに使われることが多いですね。
Hadoopには大規模データを分散して格納するためのHDFS、大規模データを処理するためのMapReduceがあり、MapReduceをオープンソースとして実装したフレームワーク基盤をHadoopと呼びます。

◯MapReduceとは

MapReduce は簡単に言うとたくさんのPCを並べて分散して処理を行なう仕組みのことをいいます。
基本的なアーキテクチャとしてはマスターとスレーブという親子関係になっていて、親から子に対して処理を命令を送り、子は命令された処理を行ないます。
子が処理を終了したら親から新たな命令が下り実行していきます。
子供の一人が処理を失敗した場合親は命令を取りやめ、別の子に命令を引き渡していきます。

この親のことをMap、子のことをReduceと呼び合わせてMapReduceとなります。

◯HDFSとは

HDFSは、Hadoop Distributed File Systemの略で、分散ファイルシステムのことです。大きい複数のファイルを分散して持たせることで1台では扱えないようなデータサイズも取り扱えるようにするシステムのことです。
MapReduceのアーキテクチャと同様にNameNodeとDataNodeという親子関係のマシンによって構成されます。
親ではどのデータがどの子供に保存されているかの管理、子供はデータの保存先となります。

いかがでしたでしょうか?
次回はこれらを踏まえた上でEMRの特徴やコスト感についてご紹介します。

お楽しみに!

次回記事:AWSデータベース紹介編~AWSの様々なDBサービス編⑥~