KZKY memo

自分用メモ.

Spark on YARN

Spark on YARNのまとめ
Sparkのアーキテクチャとしてクラスタマネージャーはプラッガブル.

Spark Standalone 登場人物/役割の総括

  • Master/Slave (or Wokrer)
  • Driver
    • SparkContextを持っているmainクラス
  • Executor
    • ワーカーで起動されるJVM
  • Appilcation
    • Driver/Executorsを含む1つのアプリ
  • Task
  • Stage
    • Task集合でmap/reduceのようなイメージ,Task集合で依存関係あり
  • RDD

YARNでSpark Applicationを実行するメリット

  • YARN上で実行するすべてのフレームワークと同じクラスターリソースプールを共有できるので,クラスタのリソースマネジメントが統一されている.他のモードを使ってしまうと,違う脳が1つの入れ物に複数ある状況になるのでリソースマネジメントがうまく行かない.例えば,SparkはStandalone/MapReduceはYARNの場合.
  • YARNのメイン機能,ワークロードのカテゴライズやアイソレーション,優先付が可能になる.
  • Executorの数を選択可能.Standaloneだと,あるアプリはすべてのノードで1つのExecutorを起動する.
  • セキュリティ対応が可能.ケルベロス認証とかでプロセス間でセキュアな権限付.

Architecutre of Spark on YARN

YARN上でSparkを動かすには,2つのモードがある.
yarn-cluster modeとyarn-client mode.

まず登場人物一覧.

  • Client
  • Spark Driver
  • Spark Executor
  • Spark Task
  • YARN Container
  • YARN Application Master
  • YARN Resource Manager

yarn-cluster mode

  • プロダクションむき.
  • Spark DriverはYARN Application Master内で起動される.
  • Clientはアプリを立ち上げたら,もう落ちて良い.

yarn-client mode

  • インタラクティブシェル/デバックむき.
  • Spark DriverはClient内で起動される.
  • Clientはアプリを立ち上げたら,アプリ終了まで生きている.

ExecutorはNode Manger内のContainerで実行されるのは一緒.
TaskがExecutor内でコンカレント実行も一緒.
DriverがアプリをステップのDAGにするのも一緒.

上記のアーキテクチャここにある