spark應用程式的提交

2021-08-22 10:28:44 字數 1471 閱讀 4062

spark 應用提交流程

\spark-master\spark-master\core\src\main\scala\org\apache\spark\deploy\sparksubmit.scala

override def main(args: array[string]): unit =

}override protected def loginfo(msg: => string): unit = printmessage(msg)

override protected def logwarning(msg: => string): unit = printmessage(s"warning: $msg")

override def dosubmit(args: array[string]): unit = catch }}

#呼叫其提交函式

submit.dosubmit(args)

}dosubmit的實現如下:

def dosubmit(args: array[string]): unit =

submit的實現如下:

下面這個函式中的呼叫流程是dorunmain->runmain

private def submit(args: sparksubmitarguments, uninitlog: boolean): unit =

})} catch

} else

}} else

private def runmain(

childargs: seq[string],

childclasspath: seq[string],

sparkconf: sparkconf,

childmainclass: string,

verbose: boolean): unit = else

thread.currentthread.setcontextclassloader(loader)

for (jar <- childclasspath)

var mainclass: class[_] = null

try catch

#建立類的例項

} else

}@tailrec

def findcause(t: throwable): throwable = t match

try catch

}於此同時在dosubmit中提到action有四種,我們之前看了submit的action,平時我們通過shell啟動的的過程中會傳遞乙個sparksubmitaction.print_version

case sparksubmitaction.print_version => printversion()

}在printversion 中我們就看到了熟悉的spark字樣

private def printversion(): unit =

使用Spark開發應用程式,並將作業提交到伺服器

由於一些原因在windows上配置未成功 應該是可以配置成功的 我是在linux上直接使用pycharm,在linux的好處是,環境可能導致的一切問題不復存在 111 新建乙個普通python工程 程式設計環境使用spark使用的python環境 222 配置spark環境 進入下圖 新增2個相應屬...

spark應用程式的執行架構

spark應用程式的執行架構 幾個基本概念 1 job 包含多個task組成的平行計算,往往由action催生。2 stage job的排程單位。3 task 被送到某個executor上的工作單元。4 taskset 一組關聯的,相互之間沒有shuffle依賴關係的任務組成的任務集。乙個應用程式由...

Spark應用程式的執行架構

1 簡單的說 由driver向集群申請資源,集群分配資源,啟動ex ecutor。driver將spark應用程式的 和檔案傳送給executor。executor上執行task,執行完之後將結果返回給driver或者寫入外界。2 複雜點說 提交應用程式,構建sparkcontext,構建dag圖,...