AWS Elastic MapReduce公式ドキュメント導入部の要約
公式ドキュメントの導入部分の個人的な備忘録メモ。
これを読めば、Elastic MapReduceで何ができるか、内部がどうなっているかだいたい分かるかも。
- 公式ドキュメント
- Amazon Elastic MapReduce
Elastic MapReduceとは
- Amazon Web Serviceの1つ
- Amazon Simple Strage Service(Amazon S3)上のデータをAmazon Elastic Compute Cloud(Amazon EC2)上の複数のインスタンス上で動作するHadoopを用いて解析する
- Elastic MapReduceがAmazon EC2とAmazon S3の間のデータのやりとり、Hadoopの最適化などを行ってくれる
- ユーザはHadoopを使うためのハードウェアやネットワークの管理から解放される
Elastic MapReduce利用時の流れ
- S3に解析用のデータと、Hadoopで動かすデータ(MapperやReducer)をアップロード
- Elastic MapReduceにJob Flowを与えて起動させる
- ユーザはS3から結果をダウンロードする
Elastic MapReduceにおけるMapReduceの流れ
- Elastic MapReduceは2つの権限を持ったインスタンスを起動する
- 1つはMasterノード,1つはTaskノードとCoreノード
- 単一のクラスタで効率的に実行するには大きすぎるデータが与えられた場合、Hadoopはデータを複数に分割する
- HadoopはデータとMapReduceの実行ファイル(S3においてある)をCoreとTaskノードに配布する
- Hadoopはハードウェアのエラーや、MasterノードとCoreノードとTaskノードの間のやりとりをうまいことする
- なのでユーザは細かいことを意識しなくていいよ
- Mapperを使ってMap操作をする
- Reducerを使ってReduce操作をする
- 結果をS3におく
インスタンスのグループ
Hadoopクラスタは1つのMasterノードからなる1つのMasterグループと、1つ以上のCoreノードからなる1つのCoreグループと、複数のTaskノードからなる1つのTaskグループから構成される(Taskグループはオプション)。
Masterグループ
- 実行ファイルやデータの配布、各ノードの状態の監視などを行う
Coreグループ
- HDFSを含んでいるノードのこと
- job flowが始まった後でノード数を増やせる(減らせない)
Taskグループ
- HDFSを含んでいないノードのこと
- ノードの数を増減できる
Job FlowとStep
- 個々の操作はStepと呼ばれる
- 一連のStepの集まりをJob Flowと言う
- Elastic MapReduceはユーザが与えた複数のStepを順番に実行していく
Job Flowの一生
- STARTING
- BOOTSTRAPPING
- RUNNING
- ここでStepが順次実行される
- (WAITING)
- 設定されていなかったらスキップされる
- WAITING中は新しいStepを追加できる
- WAITING中に終了するとTERMINATEDにいく
- SHUTTING_DOWN
- COMPLETED, TERMINATED, FAILED
Stepの一生
- PENDING
- RUNNING
- COMPLETED, FAILED, CANCELLED
- COMPLETED
- 次のStepがRUNNINGになる
- FAILEDやCANCELLED
- 次のStepがCANCELLEDになる
- COMPLETED
Bootstrap Actions
- Hadoopが始まる前の処理のことで、S3においておく
- Elastic MapReduceがいくつか用意している
- Configure Hadoop, Configure Daemons, Run-ifが提供されているから使ってよい
- 自作ももちろんOK
Configurable Data Storage
- Elastic MapReduceはHadoop Distributed Files System(HDFS)もサポートしている
- HDFSの設定も変更可能
- でも超巨大なデータを扱うような時以外はいじる必要がないように初期設定されている
Hadoopのロギング
- Elastic MapReduce・Hadoopでの処理をデバッグするためにログを吐き出す機能がある