我在一个包含36个内核和58GB内存的5个工作节点的集群中使用Spark 1.3.0.我想配置Spark的Standalone集群,每个worker有很多执行程序.
我已经看到合并的SPARK-1706,但是如何实际配置多个执行器并不是很明确.
以下是群集的最新配置:
spark.executor.cores = "15"
spark.executor.instances = "10"
spark.executor.memory = "10g"
Run Code Online (Sandbox Code Playgroud)
这些设置是SparkContext在将Spark应用程序提交到群集时设置的.
ngt*_*hoa 30
首先需要配置spark独立群集,然后设置要运行的每个spark应用程序所需的资源量.
要配置群集,您可以尝试:
在conf/spark-env.sh:
SPARK_WORKER_INSTANCES = 10确定每个节点的Worker实例数(#Executors)(其默认值仅为1)SPARK_WORKER_CORES = 15一个Worker可以使用的#个核心数(默认值:所有核心,你的情况是36)SPARK_WORKER_MEMORY = 55g#可在一台计算机(工作节点)上用于运行Spark程序的内存总量.将此配置文件复制到同一文件夹上的所有工作节点
sbin(sbin/start-all.sh,...)中的脚本来启动集群由于您有5个工作者,使用上述配置,您应该在主Web界面上看到5个(工人)*10(每个工人的执行者)= 50个活动执行者(默认情况下为http:// localhost:8080)
在独立模式下运行应用程序时,默认情况下,它将获取群集中所有可用的执行程序.您需要显式设置运行此应用程序的资源量:例如:
val conf = new SparkConf()
.setMaster(...)
.setAppName(...)
.set("spark.executor.memory", "2g")
.set("spark.cores.max", "10")
Run Code Online (Sandbox Code Playgroud)