是否可以使用某些Spark Conf设置在本地模式下为Spark Streaming应用程序设置多个执行程序?例如,当我将spark.executor.instances参数更改为4时,我无法在性能或执行程序数量增加方面看到Spark UI的任何更改。
根据定义,本地模式是在单JVM中运行的“伪集群”。这意味着执行者的最大数量为1。
如果您想在本地计算机上试验多个执行程序,您可以做的是创建在本地计算机上运行的几个worker的集群。正在运行的实例数是您的任务的最大执行程序数。
本地模式是一种开发工具,所有组件都在一台机器中进行模拟。由于单个JVM意味着单个执行程序更改执行程序的数量是不可能的,并且spark.executor.instances
不适用。
你在local
模式中所能做的就是通过修改主URL来增加线程数 - local[n]
其中n
是线程数。
“spark.executor.instances”在本地模式下不受尊重。
参考 - https://jaceklaskowski.gitbooks.io/mastering-apache-spark/spark-local.html
本地模式:在这种非分布式单JVM部署模式中,Spark在同一个JVM中生成所有执行组件 - 驱动程序,执行程序,LocalSchedulerBackend和master。默认并行度是主URL中指定的线程数。这是使用驱动程序执行的唯一模式。
因此,您可以通过将主URL作为local [n]传递,将JVM中的线程数增加到n。