天天看點

spark-submit的執行原理

Created by Wang, Jerry on Aug 08, 2015

$ cd dirname $0 和PWD%/* shell變量的一些特殊用法

在指令行狀态下單純執行 $ cd dirname $0 是毫無意義的。因為他傳回目前路徑的"."。

這個指令寫在腳本檔案裡才有作用,他傳回這個腳本檔案放置的目錄,并可以根據這個目錄來定位所要運作程式的相對位置(絕對位置除外)。

在/home/admin/test/下建立test.sh内容如下:

cd dirname $0

echo pwd

然後傳回到/home/admin/執行

sh test/test.sh

運作結果:

/home/admin/test

這樣就可以知道一些和腳本一起部署的檔案的位置了,隻要知道相對位置就可以根據這個目錄來定位,而可以不用關心絕對位置。這樣腳本的可移植性就提高了,扔到任何一台伺服器,(如果是部署腳本)都可以執行。

$0目前Shell程式的檔案名

dirname $0,擷取目前Shell程式的路徑

cd dirname $0,進入目前Shell程式的目錄

實際上是直接執行pwd指令:

spark-submit的執行原理

使用printf 列印變量的值:

spark-submit的執行原理

執行結果:

spark-submit的執行原理

實際上是調用bin folder下的spark-class(也是一個腳本), 輸入參數為org.apache.spark.deploy.sparkSubmit:

spark-submit的執行原理

–help隻顯示help:

spark-submit的執行原理

真正的執行:

spark-submit的執行原理