我找到了一些用本地启动spark的代码:
val conf = new SparkConf().setAppName("test").setMaster("local[*]")
val ctx = new SparkContext(conf)
[*]
是什么意思?
答案 0 :(得分:52)
来自doc:
./bin/spark-shell --master local[2]
--master选项指定分布式的主URL 集群,或本地在一个线程本地运行,或本地[N]运行 本地有N个线程。您应该首先使用local进行测试。
来自here:
local [*]使用尽可能多的工作线程在本地运行Spark 你机器上的核心。
答案 1 :(得分:26)
主URL含义
本地:使用一个工作线程在本地运行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
答案 2 :(得分:10)
一些额外的信息
不要在本地运行Spark Streaming程序,并将master配置为" local"或者" local [1]"。这仅为任务分配一个CPU,如果在其上运行接收器,则没有剩余资源来处理接收到的数据。至少使用" local [2]"拥有更多核心。
From -Learning Spark:Lightning-Fast大数据分析
答案 3 :(得分:2)
您可以使用本地,本地[n]或最通用的本地[*]作为主URL在本地模式下运行Spark。
URL说明总共可以使用多少个线程:
本地仅使用1个线程。
local [n]使用n个线程。
local [*]使用的线程数与Java虚拟机可用的处理器数量一样(它使用Runtime.getRuntime.availableProcessors()
来知道数量)。
local [N,maxFailures](称为局部重试),其中N为*或要使用的线程数(如上所述),maxFailures为spark.task.maxFailures
的值。
答案 4 :(得分:2)
您可以使用本地,本地[n]或最通用的本地[*]作为主URL在本地模式下运行Spark。
URL表示总共可以使用多少个线程:-
本地仅使用1个线程。
local [n]使用n个线程。
local [*]使用的Spark数量与您在其中运行应用程序的spark本地计算机所使用的线程数量相同。
您可以通过Linux计算机上的lscpu检查
[ie @ mapr2〜] $ lscpu 架构:x86_64 CPU操作模式:32位,64位 字节顺序:小尾数 CPU:56 在线CPU列表:0-55 每个核心线程:2
如果您的计算机具有56个内核,则意味着CPU将把您的Spark作业分为56个部分。
注意:-可能在您的Spark集群中, spark-defaults.conf 文件将分区值限制为默认值(例如10或其他值),则您的分区将为在配置中设置了与默认值相同的值。
local [N,maxFailures](称为局部重试),其中N为*或要使用的线程数(如上所述),maxFailures为spark.task.maxFailures的值。