Spark:如果已经通过`--py-files`选项传递,从站是否应该具有源代码?

时间:2019-01-14 17:39:56

标签: python apache-spark amazon-ec2 pyspark

我有一个运行pyspark应用程序的ec2集群,我在使用spark-submit运行--py-files的同时将压缩的python文件传递给了doe。 如果我们已经传递了文件,从站是否需要应用程序代码?

1 个答案:

答案 0 :(得分:0)

否,从属物品不需要应用程序代码或zip文件。提交火花作业的驱动程序(主)仅需要zip文件和源代码(包含main方法)。客户提交火花作业时会发生以下情况:

  1. 驱动程序从spark应用程序代码创建物理执行计划。执行计划由阶段组成,每个阶段包含几个称为任务的单元。
  2. 集群管理器根据客户的输入分配资源并在工作程序(从属)中启动执行程序。
  3. 通过驱动程序的正确监视,任务将发送到执行程序,执行程序执行驱动程序分配的任务。
  4. 退出main方法或调用sparkContext的stop()方法时,集群管理器将终止所有执行程序并释放所有资源。

整个执行由驱动程序和群集管理器管理。从站中的执行程序依赖于驱动程序来执行任务。因此,不需要将源代码或zip文件复制或传递给从属服务器。
这是spark如何工作的架构:

https://spark.apache.org/docs/latest/cluster-overview.html

https://www.dezyre.com/article/apache-spark-architecture-explained-in-detail/338