spark-submit上的文档说明如下:Spark bin目录中的spark-submit脚本用于在集群上启动应用程序。关于pyspark,它说:你也可以使用bin/pyspark来启动一个交互式的Python shell。这个问题可能听起来很愚蠢,但是当我通过pyspark运行命令时,它们也在“集群”上运行,对吗?它们不仅仅在主节点上运行,对吗?
pyspark
qybjjes11#
这两者之间没有实际区别。如果没有配置,否则两者都将在本地模式下执行代码。如果配置了master(通过--master命令行参数或spark.master配置),则将使用相应的集群来执行程序。
--master
spark.master
hs1rzwqc2#
如果您正在使用EMR,有三件事1.使用Spark塞(或Spark壳)的1.使用spark-submit而不使用--master和--deploy-mode1.使用spark提交和使用--master和--部署模式虽然使用以上三种方法都可以在Spark Cluster中运行应用程序,但是驱动程序的工作方式不同。
yiytaume3#
只是补充一个其他人没有提到的澄清(您可能已经知道这一点,但从您问题的措辞来看并不清楚):..当我通过pyspark运行命令时,它们也在“集群”上运行,对吗?它们不仅仅在主节点上运行,对吗?与spark-submit一样,标准Python代码将仅在驱动程序上运行。当您通过各种pyspark API调用操作时,您将触发将在集群上注册/执行的转换或操作。正如其他人所指出的,spark-submit也可以在集群模式下启动作业,在这种情况下,驱动程序仍然执行标准的Python代码,但驱动程序与调用spark-submit的机器**是不同的机器。
spark-submit
1l5u6lss4#
4条答案
按热度按时间qybjjes11#
这两者之间没有实际区别。如果没有配置,否则两者都将在本地模式下执行代码。如果配置了master(通过
--master
命令行参数或spark.master
配置),则将使用相应的集群来执行程序。hs1rzwqc2#
如果您正在使用EMR,有三件事
1.使用Spark塞(或Spark壳)的
1.使用spark-submit而不使用--master和--deploy-mode
1.使用spark提交和使用--master和--部署模式
虽然使用以上三种方法都可以在Spark Cluster中运行应用程序,但是驱动程序的工作方式不同。
yiytaume3#
只是补充一个其他人没有提到的澄清(您可能已经知道这一点,但从您问题的措辞来看并不清楚):
..当我通过pyspark运行命令时,它们也在“集群”上运行,对吗?它们不仅仅在主节点上运行,对吗?
与
spark-submit
一样,标准Python代码将仅在驱动程序上运行。当您通过各种pyspark
API调用操作时,您将触发将在集群上注册/执行的转换或操作。正如其他人所指出的,
spark-submit
也可以在集群模式下启动作业,在这种情况下,驱动程序仍然执行标准的Python代码,但驱动程序与调用spark-submit
的机器**是不同的机器。1l5u6lss4#
1.如果你在本地机器上运行python spark,那么你可以使用pyspark,如果在集群中,使用spark-submit。
1.如果你的python spark job中有任何依赖项,你需要一个zip文件来提交。