Amazon Elastic MapReduceを使う(その1)
2014/6/7 : 記事を更新しました。
- Hadoop、おしさしぶり(It's long time to see, Hadoop.)
- Amazon Elastic MapReduceを使う:マネージメント・コンソールからのクラスタの起動
- Amazon Elastic MapReduceを使う:マネージメント・コンソールからサンプルを動かす。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
前回までの記事では、Amazon Elastic Compute Cloud(EC2)にHadoopの実行環境を構築したが、現在、Amazon Web Services(AWS)では、Amazon Elastic MapReduce(EMR)というHadoopの実行環境が提供されている。
EC2で構築・実行する際の煩わしさがなく、とても使い勝手のよいものと感じた。
今回は、このEMRの環境設定について取り上げる。
使い方の詳細は「Hadoopファーストガイド(CookPadの方が書かれた本)」に記載されている。今回の記事はこちらを参考にさせてもらった。
- 作者: 佐々木達也
- 出版社/メーカー: 秀和システム
- 発売日: 2012/09/19
- メディア: 単行本
- クリック: 14回
- この商品を含むブログ (4件) を見る
サインアップ
AWSの他のサービス同様、EMRの場合も初回にサインアップを行わなければならない。
(例えば)マネージメントコンソールのサービス一覧からEMRを選択すると、以下の画面が出て、Sign upを要求される。
Sign up Elastic MapReduceをクリックすると、以下の画面に遷移する。
これでSignUpは終了で、Management ConsoleからEMRを利用できるようになる。
Management Consoleからサンプルアプリを実行する。
上の画面で「AWS Management Consoleの起動」をクリックすると、以下の画面に遷移する。
ここで「Sign in to the AWS Console」を選択して、Management Consoleを開く。
EMRでは、MapReduceの1連の処理をJobFlowという単位で管理している。
JobFlowの中には、複数のステップを持つことができ、この「ステップ」が1プログラム(処理)と考えると分かりやすい。
実行や管理は、JobFlow単位で行われる。
pythonで組まれたワードカウントのサンプルが用意されているので、それを実行してみる。
以下はEMRの初期画面で、ここからCreate NewJob Flowを起動して、画面の指示に従ってパラメータを登録していく。
Job Flow Nameは、コンソール上に表記されるJobFlowの名前、Hadoopバージョンは、(現時点で)Amazon Distribution の他にMapRのM3とM5が利用できる。Amazon Distributionを選択する。「Run a sample application」をチェックして、Word Countを選ぶ。
EMRでは、外部ファイルの保存先としてS3を使う(ようだ)。サンプルの実行にあたっては、自分の持っているバケットに適当なフォルダーを作成し、そこに結果をOutputさせる。
EMRでは、Master Instance Groupが「ジョブトラッカー」と「ネームノード」、Core Instance Groupが「タスクトラッカー」と「データノード」、Task Instance Groupが「タスクトラッカー」の役割を担う。以下の画面では、それの数とタイプを選択する。(タイプはsmall以上になっている)
Key Pairの設定を聞かれるので、手持ちのEC2のキーペアーを指定する。EMRでは、裏で上での指定に対応したEC2インスタンスが起動する。(EC2のManagement Consoleから見る事ができる)。
ここで、Keep AliveをNoにしておかないと、処理が終わっても、インスタンスが残ってしまう。NOにするとインスタンスはTerminateされる(Management Console上からも消えてしまう)。
次にBootStrap Actionを聞かれる。
BootStrap Actionは、言葉の通り、BootStrapとして実行する処理の意味。EMRではJob Flow をCreateする度に新しいEC2インスタンスが起動されるが、この際、時刻調整やアプリケーションのインストールや実行環境の設定などを行うプログラム(shellなど)をBootStrapアクションとして指定できる。
BootStrapアクションとして実行するプログラムは、S3に保管しておく。
今回の場合は、「Proceed with no bootstrap action」を選択して、continueを押す。
Closeをして、Management ConsoleをRefreshすると以下のようにJob Flowが現れる。
Statusは、Starting , Running と推移し、処理が終了すると、Shutting Down, Completedとなる。
Outputフォルダーに指定したS3バケットを参照すると、結果が格納されているはずである。