pyspark SparkSpark与Spark提交

nwlqm0z1  于 2023-03-11  发布在  Spark
关注(0)|答案(4)|浏览(156)

spark-submit上的文档说明如下:
Spark bin目录中的spark-submit脚本用于在集群上启动应用程序。
关于pyspark,它说:
你也可以使用bin/pyspark来启动一个交互式的Python shell。
这个问题可能听起来很愚蠢,但是当我通过pyspark运行命令时,它们也在“集群”上运行,对吗?它们不仅仅在主节点上运行,对吗?

qybjjes1

qybjjes11#

这两者之间没有实际区别。如果没有配置,否则两者都将在本地模式下执行代码。如果配置了master(通过--master命令行参数或spark.master配置),则将使用相应的集群来执行程序。

hs1rzwqc

hs1rzwqc2#

如果您正在使用EMR,有三件事
1.使用Spark塞(或Spark壳)的
1.使用spark-submit而不使用--master和--deploy-mode
1.使用spark提交和使用--master和--部署模式
虽然使用以上三种方法都可以在Spark Cluster中运行应用程序,但是驱动程序的工作方式不同。

  • 在第一和第二种情况下,驱动程序将处于客户机模式,而在第三种情况下,驱动程序也将处于集群中。
  • 在第一种和第二种情况下,您必须等到一个应用程序完成后才能运行另一个应用程序,但在第三种情况下,您可以并行运行多个应用程序。
yiytaume

yiytaume3#

只是补充一个其他人没有提到的澄清(您可能已经知道这一点,但从您问题的措辞来看并不清楚):
..当我通过pyspark运行命令时,它们也在“集群”上运行,对吗?它们不仅仅在主节点上运行,对吗?
spark-submit一样,标准Python代码将仅在驱动程序上运行。当您通过各种pyspark API调用操作时,您将触发将在集群上注册/执行的转换或操作。
正如其他人所指出的,spark-submit也可以在集群模式下启动作业,在这种情况下,驱动程序仍然执行标准的Python代码,但驱动程序与调用spark-submit的机器**是不同的机器。

1l5u6lss

1l5u6lss4#

  1. Pyspark与Scala spark和Java Spark相比有着极端的区别,因为Python spark在集群调度中只支持YARN。
    1.如果你在本地机器上运行python spark,那么你可以使用pyspark,如果在集群中,使用spark-submit。
    1.如果你的python spark job中有任何依赖项,你需要一个zip文件来提交。

相关问题