KZKY memo

自分用メモ.

Hadoop Yarnの基本

YARN

SparkのYARN-modeを使うかもしれないので基本をメモ.

  • 1つのJob, DAG of JobsなどのApplicationをクラスターで実行させることが可能
  • Applicationは,MapReduceに限らない
  • JobTrackerの役割をリソースマネジメントとスケジューリング/モニタリングに分割

Architecture

Hadoop上のサービスとしては2つあって,ResourceManager(Master)とNodeManager(Worker).
アプリケーションの実行で登場するのがApplicationMaster.

ResourceManager

Schedular
  • リソースの割り当て
  • 複数アプリケーションのスケジュール
  • プラッガブル
Applications Manager
  • ジョブの受け入れ
  • アプリケーションの登録
  • アプリケーションマスタ実行のための一番はじめのコンテナーのネゴ
  • アプリケーションマスターのモニタリング
  • 失敗時のアプリケーションマスターコンテナの再起動

NodeManager

  • アプリケーションで使うリソースを取得するためのRMとのネゴ
  • コンテナへの責任
  • コンテナがリソースをどれだけつかているかのモニタリング
  • コンテナがリソースをどれだけつかているかのRM/Schedulerへの報告

Application Master

  • Schedulerと適切なリソースコンテナのネゴ
  • コンテナのステータスモニタリング

Application Workflow

http://hortonworks.com/blog/apache-hadoop-yarn-concepts-and-applications/
にYARN – Walkthroughの言葉での説明とアーキテクチャ上のフローがある.

http://www.slideshare.net/ZhijieShen/apachecon14
にYARN – Walkthroughのシークエンス図および簡易説明がある.

f:id:KZKY:20150112174436p:plain
f:id:KZKY:20150112174442j:plain

アプリケーション実行シークエンスのまとめ

1. クライアントがアプリケーションをサブミット
2. RMがAMをスタートするためにコンテナを立ち上げる
3. AMがRMに登録される
4. AMがRMにコンテナを要求
5. AMがNMにコンテナを立ち上げるように要求
6. アプリケーションコードはコンテナ内で実行される
7. クライアントはRM/AMとコンタクトしてアプリケーションステータスをモニタ
8. アプリケーションが完了するとAMがRMから登録解除される

ただし
AM: Application Master
RM: Resource Manager