setMaster`local [*]`在spark中意味着什么?

Fre*_*ind 39 scala apache-spark

我发现一些代码在本地启动spark:

val conf = new SparkConf().setAppName("test").setMaster("local[*]")
val ctx = new SparkContext(conf)
Run Code Online (Sandbox Code Playgroud)

什么[*]意思?

cch*_*son 61

来自doc:

./bin/spark-shell --master local[2]
Run Code Online (Sandbox Code Playgroud)

--master选项指定分布式集群的主URL,或本地在一个线程上本地运行,或本地[N]在本地运行N个线程.您应该首先使用local进行测试.

这里:

local [*]使用与计算机上的逻辑核心一样多的工作线程在本地运行Spark.


Fre*_*Man 37

主URL意义


local:使用一个工作线程在本地运行Spark(即根本没有并行性).


local [K]:使用K个工作线程在本地运行Spark(理想情况下,将其设置为计算机上的核心数).


local [K,F]:使用K个工作线程和F maxFailures在本地运行Spark(有关此变量的说明,请参阅spark.task.maxFailures)


local [*] :使用与计算机上的逻辑核心一样多的工作线程在本地运行Spark.


local [*,F] :使用与计算机和F maxFailures上的逻辑核心一样多的工作线程在本地运行Spark.


spark:// HOST:PORT :连接到给定的Spark独立集群主服务器.端口必须是主服务器配置使用的端口,默认为7077.


spark:// HOST1:PORT1,HOST2:PORT2 :使用带有Zookeeper的备用主服务器连接到给定的Spark独立群集.该列表必须具有使用Zookeeper设置的高可用性群集中的所有主主机.端口必须是每个主服务器配置使用的默认端口,默认为7077.


mesos:// HOST:PORT :连接到给定的Mesos集群.端口必须是您配置使用的端口,默认为5050.或者,对于使用ZooKeeper的Mesos集群,请使用mesos:// zk:// ....要使用--deploy-mode集群进行提交,应将HOST:PORT配置为连接到MesosClusterDispatcher.


yarn :根据--deploy-mode的值,以客户端或集群模式连接到YARN集群.将根据HADOOP_CONF_DIR或YARN_CONF_DIR变量找到群集位置.

https://spark.apache.org/docs/latest/submitting-applications.html


小智 11

一些额外的信息

不要在本地运行Spark Streaming程序,并将master配置为"local"或"local [1]".这仅为任务分配一个CPU,如果在其上运行接收器,则没有剩余资源来处理接收到的数据.至少使用"local [2]"来拥有更多核心.

From -Learning Spark:Lightning-Fast大数据分析


Ram*_*ram 6

主网址

您可以使用local, local[n]或 最通用local[*]的主 URL在本地模式下运行 Spark 。

URL 表示总共可以使用多少个线程:

local 仅使用 1 个线程。

local[n] 使用 n 个线程。

local[*]使用与 Java 虚拟机可用的处理器数量一样多的线程(它Runtime.getRuntime.availableProcessors()用来知道数量)。

local[N, maxFailures](称为local-with-retries),N*或要使用的线程数(如上所述),maxFailures 是spark.task.maxFailures.