在Apache Spark中,Spark-submit.sh如何在不同的模式和不同的集群管理器中工作?具体而言:
在本地部署模式下,
- spark-submit.sh是否跳过调用任何集群管理器
- 不需要在本地计算机上安装群集管理器,这正确吗
在客户端或集群部署模式下,
-
spark-submit.sh是否与不同的集群管理器(spark standalone、YARN、Mesos、Kubernetes(一起工作?不同的集群管理器是否有不同的接口,spark-submit.sh必须以不同的方式调用它们?
-
除了
--master
之外,spark-submit.sh在程序员看来是同一个界面吗?spark-submit.sh的选项--master
用于指定集群管理器。
谢谢。
为了清楚起见,在任何模式(client
或cluster
,或者是否在local
模式下运行spark(下运行时,绝对不需要指定任何集群管理器。集群管理器只是为了使资源分配更容易和独立,但使用与否始终是您的选择。
spark-submit
命令不需要存在群集管理器即可运行。
使用命令的不同方式有:
1(local
模式:
./bin/spark-submit
--class org.apache.spark.examples.SparkPi
--master local[8]
/path/to/examples.jar
100
2( 没有资源管理器的client
模式(也称为spark独立模式(:
./bin/spark-submit
--class org.apache.spark.examples.SparkPi
--master spark://207.184.161.138:7077
--executor-memory 20G
--total-executor-cores 100
/path/to/examples.jar
1000
3( 带火花独立模式的cluster
模式:
./bin/spark-submit
--class org.apache.spark.examples.SparkPi
--master spark://207.184.161.138:7077
--deploy-mode cluster
--supervise
--executor-memory 20G
--total-executor-cores 100
/path/to/examples.jar
1000
4( 具有资源管理器的客户端/集群模式:
./bin/spark-submit
--class org.apache.spark.examples.SparkPi
--master yarn
--deploy-mode cluster # can be client for client mode
--executor-memory 20G
--num-executors 50
/path/to/examples.jar
1000
正如您在上面看到的,无论是否有集群管理器,spark-submit.sh都将以相同的方式运行。此外,如果您想使用像yarn、mesos这样的资源管理器,spark-submit的行为将保持不变。你可以在这里阅读更多关于spark-submit
的信息。