我一直了解 Spark shell,无论是 PySpark 还是 Scala,都在客户端模式下运行。如果我错了,请纠正我,没有开箱即用的配置可以在集群模式下使用它们。
为什么会这样?是什么让集群模式不适合这些交互式 shell?
客户端和驱动程序之间的网络延迟可能是一个因素。如果使用 YARN,初始启动时间可能会更长,因为驱动程序的集群资源需要从 YARN 资源管理器中提供。但在我看来,这两个因素并不是严重的阻碍因素。
编辑
问题Spark-submit / spark-shell > yarn-client 和 yarn-cluster 模式之间的区别是相关的,但不关注(并且答案不包括)为什么 shell 不能在集群模式下运行。
pyspark --deploy-mode cluster
Error: Cluster deploy mode is not applicable to Spark shells.