Sparkがyarnクラスタ上で実行する2つのコミット方式


文書ディレクトリ
  • Sparkクラスタ概要
  • yarnクラスタの2つのコミット方式
  • client
  • 実行原理
  • 実行フロー
  • cluster
  • コミットコマンド(2種類)
  • 実行原理
  • 実行フロー
  • Sparkクラスタの簡単な紹介
    前のブログで紹介したSparkクラスタは4つに分かれています.
  • local
  • stand alone
  • yarn
  • mesos

  • ここではyarnを紹介します.
    yarnクラスタの2つのコミット方式
    まずsparkはyarnクラスタ上を走って、HDFSを開かなければなりません.パケットはHDFSにアップロードされるからです.しかし、standaloneクラスタは開く必要はありません.開くと、sparkクラスタが2つあり、Applicationを提出するとリソースの奪い合いの問題が発生する可能性があります.
    client
    Standaloneクラスタとyarnクラスタのコミットコマンドの比較:
  • Stand alone:spark-submit --master spark://node01:7077
  • yarn:spark-submit --master yarn-client --class org.apache.spark.examples.SparkPi …/lib/spark-examples-1.6.3-hadoop2.6.0.jar 10

  • じっこうげんり
    プロセスの実行
  • クライアントはアプリケーションを送信し、クライアントでDriverプロセス
  • を開始する.
  • DriverプロセスはRS(ResourceManager)に要求を送信し、AM(ApplicationMaster)のリソースを起動します.
  • RSは要求を受け取り、ランダムに1台のNM(NodeManager)を選択してAMを起動する.ここでのNMはStandaloneのWorkerノードに相当する.
  • AMが起動すると、Executor
  • を起動するためにRSにcontainerリソースが要求されます.
  • RSは、Executorを起動するためのNMのバッチを見つけてAMに返す.
  • AMはNMにコマンドを送信しExecutorを起動します.
  • Executorが起動すると、逆にDriverに登録され、DriverはtaskをExecutorに送信し、実行状況と結果はDriver側に返されます.

  • cluster
    コマンドの発行(両方)
    ./spark-submit --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi …/lib/spark-examples-1.6.0-hadoop2.6.0.jar 100
    
    ./spark-submit --master yarn-cluster --class org.apache.spark.examples.SparkPi …/lib/spark-examples-1.6.0-hadoop2.6.0.jar 100
    

    じっこうげんり
    プロセスの実行
  • クライアントはアプリケーションを発行し、RS(ResourceManager)に要求を送信し、AM(ApplicationMaster)の起動を要求する.
  • RSは、要求を受信した後、ランダムに1台のNM(NodeManager)上でAM(Driver側に相当)を起動する.
  • AMが起動し、AMはRSに要求を送信し、Executorを起動するための一連のcontainerを要求する.
  • RSは、NMノードのバッチをAMに返す.
  • AMはNMに接続され、NM起動Executorに要求を送信する.
  • Executorは、AMが存在するノードのDriverに逆登録される.DriverはtaskをExecutorに送信します.