“本地”是什么意思?

我找到了一些代码,可以在本地启动:

val conf = new SparkConf().setAppName("test").setMaster("local[*]")
val ctx = new SparkContext(conf)

[*]是什么意思?

84852 次浏览

来自 医生:

./bin/spark-shell --master local[2]

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

来自 给你:

local[*]使用尽可能多的工作线程在本地运行 Spark 你机器上的磁芯。

一些额外的信息

不要使用配置为“ local”或“ local [1]”的 master 在本地运行 Spark Streaming 程序。这只为任务分配一个 CPU,如果接收器运行在这个 CPU 上,就没有资源来处理接收到的数据。至少使用“ local [2]”来获得更多的内核。

来自学习的火花: 闪电般快速的大数据分析

主网址含义


Local : 使用一个辅助线程在本地运行 Spark (即完全没有并行性)。


Local [ K ] : 使用 K worker 线程在本地运行 Spark (理想情况下,将其设置为机器上的核心数量)。


Local [ K,F ] : 使用 K worker 线程和 F maxFalse 在本地运行 Spark (有关此变量的说明,请参见 parks. task.maxail)


Local [ * ] : 在本地运行 Spark,其工作线程的数量与机器上的逻辑核数量一样多。


Local [ * ,F ] : 在本地运行 Spark,其工作线程的数量与您的机器上的逻辑核心数量相同,而且 F maxfalse。


Park://HOST: PORT : 连接到给定的 Spark 独立集群主机。该端口必须是您的主机配置使用的任何一个端口,默认情况下为7077。


Spark://HOST1: PORT1,HOST2: PORT2 : 使用 Zookeep 与备用 master 连接到给定的 Spark 独立集群。这个列表必须将高可用性集群中的所有主机都与“动物保护者”一起设置好。该端口必须是每个主服务器配置为使用的端口,默认情况下为7077。


Mesos://HOST: PORT : 连接到给定的 Mesos 集群。端口必须是您配置要使用的任何端口,默认情况下为5050。或者,对于使用 ZooKeeper 的 Mesos 集群,使用 Mesos://zk://..。若要使用—— department-mode 集群提交,应将 HOST: PORT 配置为连接到 MesosClusterDispatcher。


纱线 : 在客户机模式或集群模式下连接到 YARN 集群,具体取决于—— department-mode 的值。集群位置将基于 HADOOP _ CONF _ DIR 或 YARN _ CONF _ DIR 变量找到。

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

主网址

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

URL 说明了总共可以使用多少个线程:

local仅使用1个线程。

local[n]使用 n 个线程。

local[*]使用的线程数量与 Java 虚拟机可用的处理器数量相同(它使用 Runtime.getRuntime.availableProcessors()来知道这个数字)。

local[N, maxFailures](称为 local-with-retry) ,其中 N*或要使用的线程数(如上所述) ,maxFalse 为 spark.task.maxFailures的值。

对于主 URL,可以使用 local、 local [ n ]或最一般的 local [ * ]以本地模式运行 Spark。

URL 说明总共可以使用多少个线程:-

Local 只使用1个线程。

Local [ n ]使用 n 个线程。

Local [ * ]使用的线程数量与您在本地机器上运行应用程序时所使用的线程数量一样多。

您可以在 Linux 机器上通过 lscpu 进行检查

[ ie@mapr2 ~ ] $lscpu 架构: x86 _ 64 CPU 运行模式: 32位,64位 字节顺序: Little Endian 中央处理器: 56 联机 CPU 列表: 0-55 每芯螺纹: 2个

如果你的机器有56个核心意味着 CPU 然后你的火花工作将被分区在56个部分。

注意:-可能有这样的情况,在您的火花集群的 Park-default. conf文件限制了分区值与默认值(如10或其他) ,然后您的分区将是相同的默认值已在配置。

Local [ N,maxFalse ](称为 local-with-retry) ,其中 N 为 * 或者要使用的线程数(如上所述) ,maxFalse 为 parks.task.maxFalse 的值。

没有 * 火花将使用单线程。

With * park 将使用所有可用的线程运行此程序