首页 > 代码库 > 如何在Spark集群的work节点上启动多个Executor?
如何在Spark集群的work节点上启动多个Executor?
如何在Spark集群的work节点上启动多个Executor?
默认情况下,Spark集群下的worker,只会启动一个Executor,只运行了一个 CoarseGrainedExecutorBackend 进程。Worker 通过持有 ExecutorRunner 对象来控制 CoarseGrainedExecutorBackend 的启停。
那么如何启动多个executor呢?通过设置参数来解决:
1、设置每个executor使用的cpu数为4
spark.executor.cores 4
2、限制cpu使用数量,这里会启动3个executor(12/4)
spark.cores.max 12
3、设置每个executor的内存大小为8g
spark.executor.memory 12g
以上设置将会启动3个executor,每个executor使用4cpu,12gRAM。
总共占用worker资源12cpu,36gRAM。
Spark1.6的源码部分为:
protected final String EXECUTOR_MEMORY = "--executor-memory";
protected final String TOTAL_EXECUTOR_CORES = "--total-executor-cores";
protected final String EXECUTOR_CORES = "--executor-cores";
也可以在提交任务的时候添加:
SparkSubmit --class com.dyq.spark.MyClass --master:spark://master:7077 --total-executor-cores 12 --executor-cores 24 --executor-memory 12g
tip
在使用过程中发现如果使用spark1.5以下版本有时候会出现即使有资源也申请不到的情况。
最后再附上SparkSubmit的所有参数表:
SparkSubmitOptionParser { String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String = String =
如何在Spark集群的work节点上启动多个Executor?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。