登録申請登録メカニズム原則ソース機構解析と小さなノートのマスターのマスター--------スパーク分析

原理図:

 

 

マスタークラスの場所:org.apache.spark.deploy.master火花core_2.11-2.1.0.jarのカテゴリの下にマスター
 
// コードの切片の一部
 // 登録要求アプリケーション処理
ケース RegisterApplication(説明、ドライバ)=>
   // マスタ状態は、スタンバイ・マスターアクティブ即ち現在のマスター、STANDBYマスターでない場合
   // 次に要求アプリケーション、何も乾燥していないだろうサインアップ
   // いくつかのドライバーからTODOを防ぐ繰り返し登録を
  IF(状態== RecoveryState.STANDBY){
     // 送信応答、無視していない 
  } { 
    LOGINFO(アプリケーションの登録 + description.name)
     / / ApplicationDescription情報と、にApplicationInfo作成 
    =ヴァルのアプリを起動しますcreateApplication(解説、ドライバ)
     // アプリケーションの登録
     // にApplicationInfoバッファーを加え、アプリケーション--waitingAppsがスケジュールされるのを待っているキューに入れられ 
    registerApplication(APP)// コードを参照、詳細:コード1 
    LOGINFO(" 登録アプリケーション" + + description.nameを" IDと" + app.id)
     // 永続性の永続エンジンにApplicationInfoを使用
    persistenceEngine.addApplication(APP)
         // でappclientのSparkDeploySchedulerBackendに逆、ClientActorは、メッセージ、すなわちRegisteredApplicationの送信
    driver.send(RegisteredApplicationを(app.id、セルフ))
    スケジュール()// スケジュール再スケジュール、 -これまでに完成したアプリケーションの登録
  } 
。コード1 
プライベート DEF registerApplication(APP:にApplicationInfo):単位= { 
  ヴァルappAddress = app.driver.address
   IF (addressToApp.contains(appAddress)){ 
    (LOGINFO " 同じアドレスの再登録ファイルアプリケーションにしようとしました:" + appAddress)
     リターン
  } 
 
  applicationMetricsSystem.registerSource(app.appSource)
 
// 情報が実際APPメモリ・キャッシュに追加される 
  アプリ+ = アプリ
  idToApp(app.id) = アプリ
  endpointToApp(app.driver) = アプリ
  addressToApp(appAddress) = アプリ
 
// APPは、待ち行列スケジューリングwaitingAppsあるArrayBufferに添加 
  waitingApps + = アプリ
   IF (リバースプロキシ){ 
    webUi.addProxyTargets(app.id、app.desc.appUiUrl)
  } 
}

 

 
 
 
 

おすすめ

転載: www.cnblogs.com/yzqyxq/p/11968009.html