Amazon Elastic MapReduce(EMR)の選択肢を考える:きょうから試せる Hadoop“スモールスタート”ガイド(5)(5/6 ページ)
実際にHadoopで処理を実装していきながら「Hadoopは、誰にだって扱える」を体感しましょう。今回は「Amazon Elastic MapReduce(EMR)の選択肢と活用方法」を解説します。
EMRを構成するアーキテクチャ
次に、EMRがどのようなアーキテクチャで構成されているのかを説明します。
サポートしているファイルシステム
EMRでは通常、入力データと出力データをS3に保存します。HDFSも利用していますが、これは主にMapperの出力などの中間データの格納先としてのみ利用されます。EMRは次のようなファイルシステムをサポートしています。
- HDFS
- S3ネイティブファイルシステム(s3n://xxx)
- S3ブロックファイルシステム(s3://xxx)
- ローカルファイルシステム
HDFSはEC2インスタンスのローカルディスク上に構築され、中間データの格納先として利用されます。データの読み出しや書き込みは基本的にS3に対して行われます。
ジョブフローとステップ
EMRではジョブフローやステップといった用語が使われます。ジョブフローやステップとはいったい何なのでしょう。言葉が独特なので違和感を覚えるかもしれませんが、EMRでは一連の処理をジョブフロー、その中で実行されるそれぞれの処理をステップと呼びます。
用語 | 説明 | |
---|---|---|
ステップ | ひとつのHadoopジョブ | |
ジョブフロー | 複数のステップを含む一連の処理で、クラスタ毎にひとつ割り当てられる |
EMRを起動するとまずジョブフローが起動します。ジョブフローはユーザからデータ処理の指示を受け取り、ステップを起動して作業指示を出し、進捗状況をステータスとして報告する役割です。
ジョブフローには複数のステップが登録されます。ひとつのジョブフローの中にステップは256個まで登録可能であり、ジョブフロー内ではステップは定義された順番で実行されます。ステップは基本的にはHadoopを使った処理ですが、Hadoopを利用しない特定のサーバ単体での処理を登録することもできます。
ステータス遷移
ジョブフローは一連の処理であり、ジョブフローの進捗によってステータスが変わっていきます。ジョブフローのステータスは「STARTING」、「BOOTSTRAPPING」、「RUNNING」…と変化していきます。それぞれのステータスについてまとめるとこのようになります。
状態 | ステータス | 説明 | |
---|---|---|---|
ジョブフロー起動 | STARTING | EC2インスタンスの起動やHadoopクラスタの構築 | |
ブートストラップアクション | BOOTSTRAPPING | Hadoopクラスタの環境構成のカスタマイズなどを行う | |
ステップ処理 | RUNNING | ステップ処理が実行されている | |
待機状態 | WAITING | ジョブフローが作業指示を待っている | |
シャットダウン | SHUTTING_DOWN | ジョブフローがHadoopクラスタを終了している | |
ジョブフロー完了 | TERMINATED | ジョブフローが完了している |
それぞれのステップでもステータス遷移がありますが、こちらは「PENDING」、「RUNNING」、「COMPLETED」の順にステータンスが変化していきます。もしステップがエラーで失敗した場合には「FAILED」というステータスになり、以降のステップはすべて「PENDING」となります。
インスタンスグループ
実は、EMRは起動時にEC2インスタンスを起動しますが、そのインスタンスは「マスターインスタンスグループ」、「コアインスタンスグループ」、「タスクインスタンスグループ」という3つのグループのいずれかに属します。それぞれの役割は以下の通りです。
グループ | 説明 | 役割 | |
---|---|---|---|
マスター | ジョブフロー全体の構成管理などを行う ジョブフローの中で複数台は起動できず、必ず1台のみ起動する |
ジョブトラッカー、 ネームノード |
|
コア | HDFSを持っており、実際にデータを読み込みつつデータ処理を行う ひとつのジョブフローに対して複数存在できる |
タスクトラッカー、 データノード |
|
タスク | データは持たないがデータ処理のためにリソース提供することが可能 複数存在できるし、必要なければ存在しなくてもよい |
タスクトラッカー |
これらのインスタンスグループの関係をまとめると次の図のようになります。EMR内で起動されるHadoopクラスタの中で、各ノードがいずれかのインスタンスグループに属している、というイメージです。
関連記事
- もし、あなたが「“ビッグデータプロジェクト”を任せる。何とかするように」と言われたら
「ビッグデータプロジェクトを始めることになった」ら、具体的に何をするのか。本連載は、「ビッグデータプロジェクトの“進め方”」を業務視点/ビジネス視点の両面から体系的に理解し、具体的に実践していく方のためのナレッジアーカイブです。第1回目は、「ビッグデータとは何か」の基礎と、「ビッグデータ基盤の概要とメリット」を解説します。 - Hadoopは「難しい・遅い・使えない」? 越えられない壁がある理由と打開策を整理する
ブームだったHadoop。でも実際にはアーリーアダプター以外には、扱いにくくて普及が進まないのが現状だ。その課題に幾つかの解決策が出てきた。転換期を迎えるHadoopをめぐる状況を整理しよう。 - いまさら聞けないHadoopとテキストマイニング入門
Hadoopとは何かを解説し、実際にHadoopを使って大規模データを対象にしたテキストマイニングを行います。テキストマイニングを行うサンプルプログラムの作成を通じて、Hadoopの使い方や、どのように活用できるのかを解説します - 欧米の金融業界は今、どうHadoopを活用しているか
Hadoopは、欧米の金融関連サービス業界でどう活用されているか。米Hortonworksの金融サービス業界担当ゼネラルマネージャーへのインタビューで得た情報を、2回に分けてお届けする。今回は金融業界におけるHadoopのユースケースを概観する。
Copyright © ITmedia, Inc. All Rights Reserved.