July 4, 2009
AWS:Introduction to Elastic MapReduce

Introduction to Elastic MapReduce


Topics

    * Overview of Elastic MapReduce
    * Amazon Elastic MapReduce and Hadoop
    * Master and Slave Nodes

This introduction to Elastic MapReduce provides a high-level overview of this web service. After reading this section, you should understand the basics you need in order to work through the examples in this guide.

Overview of Elastic MapReduce

Elastic MapReduce is a web service that makes it easy for businesses, researchers, data analysts, and developers to efficiently and cost-effectively process vast amounts of data using the Amazon Elastic Compute Cloud (EC2) and Amazon Simple Storage Service (Amazon S3). Whether you already have an end-to-end data processing job flow or only a data set, Elastic MapReduce lets you focus on analyzing your data instead of the mechanics of the processing, including managing a cluster of computers in a complex distributed software development environment. Elastic MapReduce enables you to implement data processing applications for a number of purposes, such as web indexing, data mining, log file analysis, machine learning, scientific simulation, and bioinformatics research, among others.

EMRウェブサービスによりビジネス、研究者、データ分析家、開発者が効果的に、低コストで大量の データ処理をEC2とS3を使って行なう事ができます。すでにend-to-endのデータ処理ジョブフローを持っていたり、あるいは単にデータセットが あるだけかもしれませんが、EMRにより処理のメカニズムではなくデータ分析にフォーカスできるようになります。複雑な分散ソフトウェア開発環境にあるコ ンピュータクラスタの管理など行なう必要が亡くなります。EMRによりデータ処理アプリケーションを実装する事ができます。Webの索引付け、データマイ ニング、ログファイル分析、マシン学習、科学シュミレーション、遺伝子研究とか。

Amazon Elastic MapReduce and Hadoop

Elastic MapReduce uses Apache Hadoop, which is an open source Java software framework that supports massive data processing across a cluster of servers. Hadoop uses a programming model called MapReduce that divides a large dataset into many small fragments. Hadoop distributes a data fragment and a copy of the MapReduce executable to each of the slave nodes in an EC2 cluster. All slave nodes run the MapReduce executable on their subset of the data. Hadoop then combines the results from all of the slave nodes into a finished output. Elastic MapReduce uploads that output into the Amazon S3 bucket you designate.

EMRはApache Hadoopを使っています。オープンソースのJava ソフトウェアフレームワークで巨大データ処理をサーバークラスタにまたがって行ないます。HadoopはMapReduceというプログラミングモデルを 使っていますが、これは巨大なデータセットを多くの小さなフラグメントに分割します。Hadoopはデータフラグメントを分散させ、MapReduce実 行形式をEC2クラスタの各スレーブノードにコピーします。すべてのスレーブノードはMapReduce実行形式をデータのサブセットに対して実行しま す。その後すべてのスレーブノードの結果を連結して1つに出力します。EMRはその出力を指定したS3バケットにアップロードします。

Typically, the processing involves performing relatively simple operations on very large amounts of data, for example, adding a watermark to 1,000,000 digital images. It is also typical to perform more than one process on the data. Each process is called a step and the sequence of steps is called a job flow.
大抵の処理ではかなり小さな処理をとても巨大なデータに行ないます。例えば、1つのウォーターマーク を1,000,000のデジタルイメージに加えるとか。1つのデータには複数のプロセスを実行する事がおおいです。各プロセスはステップと呼ばれ、ステッ プの流れはジョブフローと呼ばれます。

For more information about Hadoop, go to http://hadoop.apache.org/core/.

Job Flow and Steps

A job flow is a user-defined task that Elastic MapReduce performs. A job flow consists of one or more steps each of which must complete in sequence successfully for the job flow to finish successfully. A step maps roughly to one algorithm that manipulates the data. A job flow typically consists of multiple steps. The output of one step becomes the input of the next.
ジョブフローはユーザーが定義したEMFが実行するタスクです。ジョブフローは複数のステップから実 行され、それぞれはジョブフローが正常終了する順番で完了しなければなりません。ステップは大まかにいって1つのアルゴリズムでデータを処理します。ジョ ブフローは通常複数のステップから構成されます。1つのステップの出力は次のステップの入力になります。

Hadoop and Amazon Elastic MapReduce

Hadoop performs the MapReduce functions of dividing up the work among the slave instances in the cluster, tracking status, and combining the individual results into one output. 
HadoopはMapReduce関数を使ってクラスターを構成する複数のスレーブサーバーに作業を 分割します。状態を監視し、個別の結果を1つの出力にまとめます。

Elastic MapReduce takes care of provisioning an EC2 cluster, terminating it, moving the data between it and Amazon S3, and optimizing Hadoop. Elastic MapReduce removes most of the cumbersome details of setting up the hardware and networking required by the server cluster, such as monitoring that setup, configuring Hadoop, and executing the job flow. Together, Elastic MapReduce and Hadoop provide all of the power of Hadoop processing with the ease, low cost, scalability, and power afforded by Amazon S3 and EC2.
EMRはEC2の起動したり、終了したり、データをS3とのあいだで移動させたり、Hadoopの最 適化を行なったりします。EMRをつかうと細かいめんどくさい事をやらずにすみます。ハードウェアの設定やクラスタに必要なネットワーキングとかです。 セットアップ、Hadoopの構成、ジョブフローの実行とかです。EMRとHadoopを使う事でHadoopのすべてのパワーを簡単に低予算でスケーラ ブルに,そしてS3/EC2でえられるパワーを利用する事ができます。

Master and Slave Nodes

An EC2 cluster contains one master node and one or more slave nodes, as depicted in the following figure.


The master node helps coordinate the distribution of the MapReduce executable and subsets of the entire dataset to the slaves and tracks the status of each task being performed by the slaves. Hadoop monitors the health of all of the instances. If Hadoop determines that an instance is not performing, Elastic MapReduce terminates the instance and restarts another.
マスターノードはスレーブに対するMapReduceの実行形式と全データセットのサブセットの分散 管理を行ない、スレーブで実行されている各タスクの状態をトラックします。Hadoopはすべてのサーバーの状態をモニターします。Hadoopがある サーバーが動いていないと判断すると、EMRがそのサーバーを停止させて他のサーバーを起動します。

Each slave node has a copy of the MapReduce executable and receives from Amazon S3 a portion of the entire data set. Each slave node processes the data, uploads it back to Amazon S3, and provides status metadata to the master node.

それぞれのスレーブノードはMapReduce実行形式のコピーを持っていて、S3からデータセット の部分を取得します。そのデータを処理し、S3にアップロードし直してマスターノードに対して状態のメタデータを提供します。

Posted via email from hdknr’s posterous | Comment »