Spark:對於提交命令的理解

如何使用spark-submit將打包好的jar提交到Spark上運行?

打開終端,在終端中輸入spark-submit  --help, 可以查看spark-submit的詳細幫助。

下面說一下 spark-submit  的詳細幫助。

(1) --class 指向程序中的主類。

  例如:--class "helloworld"

(2) --master 是指集羣的master URL。

  舉個例子,在本地運行就可以這樣寫:

local模式:

- -master local    //這是在本地運行

--master local[K]   這是在本地運行,並且啓動K(數字比如1,2,3這樣的)個woker線程,如果K設置爲*(這樣:--master local[*]),則表示使用機器上的所有邏輯核心數作爲參數K的值。

- -master local[K,F]   //這是在本地運行並且啓動K個worker線程(這裏的K也設置爲*),並且設置任務的最大出錯數爲E次,設置任務的最大出錯數爲F次。

使用這種方式由於是直接在本地運行的,並沒有提交到集羣上,所以8080端口的WebUI中看不到提交的任務。

 

standalone模式:

如果想在standalone模式下運行則可以這樣寫:

master spark:/ /host:port   //host是master的ip或者hostname, 這裏的端口號默認是7077這個端口號可以在8080端口的Web UI界面中看到。

master spark:/ /host :port, host2:port2 //如果有備用的master則可以這樣寫,在不同的master之間用逗號隔開。

mesos :

如果使用了mesos 作爲集羣的資源管理器,則可以這樣寫:

--master mesos:/ /host:port    //和standalone的寫法類似

YARN:

如果使用了YARN作爲集羣的資源管理器,則可以這樣寫:

--master yarn //如果使用這種方式則需要讀者設置好Hadoop的HADOOP_ CONF_DIR和YARN_CONF_DIR環境變量

(3) --deploy-mode 設置以什麼模式運行,有cluster和client兩種,默認是client 模式。

(4) --conf後面跟配置屬性的鍵和值,詳情可參看下面的模板。

下面給出大體的模板:

./bin/ spark-submit \

--class <main-class> \

--master <master-url> \

--deploy-mode <deploy-mode> \

--conf <key>=<value> \

...#其他參數,詳情請參考spark-submit --help \

<jar的路徑> \

注意: ""反斜槓用於換行。

下面給出一個例子供讀者參考:

./bin/ spark-submit \

--class "helloworld" \

--master spark://master:7077 \

--deploy-mode cluster \

--executor-memory 20G \

--total-executor-cores 100 \

/path/to/examples.jar \

1000

spark:spark-submit 提交任務及參數說明(yarn):

https://blog.csdn.net/weixin_38750084/article/details/104146054

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章