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

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