为什么Spark Shell(PySpark或Scala)以客户端模式而不是群集模式运行?

时间:2019-07-05 07:42:21

标签: apache-spark hadoop pyspark yarn spark-shell

我一直了解在客户端模式下运行的Spark壳(无论是PySpark还是Scala)。如果我错了,请纠正我,没有现成的配置可以在集群模式下使用它们。

为什么会这样?是什么使群集模式不适用于这些交互式外壳?

客户端和驱动程序之间的网络延迟可能是一个因素。而且,如果使用YARN,则可能需要更长的初始启动时间,因为需要从YARN资源管理器中配置驱动程序的群集资源。但是在我看来,这两个因素并不是严重的阻碍因素。

编辑
问题Spark-submit / spark-shell > difference between yarn-client and yarn-cluster mode是相关的,但没有关注(并且答案没有涵盖)为什么Shell无法在群集模式下运行。

pyspark --deploy-mode cluster
Error: Cluster deploy mode is not applicable to Spark shells.

1 个答案:

答案 0 :(得分:0)

由于Spark Shell用于交互式查询,因此Spark驱动程序必须在您的主机上运行(而不是作为群集内的容器运行)。 换句话说,我们使用Spark Driver连接到集群,该驱动程序是处理编程的接口-交互式编程。