2016-12-04 59 views
2

我想了解何時提交Spark應用程序哪個節點將充當驅動程序節點,哪個節點將作爲工作節點?獨立羣集中Spark應用程序的Spark驅動程序節點和工作者節點

例如,如果我有3個節點的獨立羣集。

當提交spark首次應用程序(app1)時,spark框架將隨機選擇其中一個節點作爲驅動程序節點,其他節點作爲工作節點。這僅適用於app1。在執行期間,如果提交了另一個Spark應用程序(app2),spark可以隨機選擇一個節點作爲驅動程序節點,其他節點作爲工作節點。這僅適用於app2。因此,當兩個spark應用程序都在執行時,可能會出現兩個不同節點可能成爲主節點的情況。如果誤解,請糾正我。

回答

4

你在正確的軌道上。 Spark有一個用於計算的Worker節點的概念。每個這樣的工作者可以運行N個Executor進程。如果Spark指定驅動程序在任意Worker上運行,這並不意味着Worker無法運行運行計算的其他Executor進程。

至於你的例子,Spark不會選擇主節點。主節點在環境中是固定的。它所做的選擇是在哪裏運行驅動程序,這是SparkContext將在應用程序的整個生命週期內運行的位置。基本上如果你交換師父和司機,你的答案是正確的。

相關問題