转:https://www.2cto.com/kf/201610/557115.html 其中的资源调度部分
资源调度
集群当前仅支持一种先进先出的资源调度模式. 然而,为了支持多个并行的用户操作,你可以控制每一个应用程序所能使用的最大的资源. 默认情况下,应用程序将会占用你所有的cpu数量,然而这种分配方式仅仅在你只有一个应用程序需要运行的情况下是合理的. 你可以控制应用程序的核数通过在SparkConf对象中设置spark.cores.max参数来实现,例如:
1
2
3
4
5
|
val conf =
new
SparkConf()
.setMaster(...)
.setAppName(...)
.set(
"spark.cores.max"
,
"10"
)
val sc =
new
SparkContext(conf)
|
附加的,你可以在集群的主节点进程中通过设置spark.deploy.defaultCores参数来改变默认的cpu核数. 你也可以通过在conf/spark-env.sh中设置如下参数来做到这一点:
1
|
export SPARK_MASTER_OPTS=
"-Dspark.deploy.defaultCores=<value>"
</value>
|
这个参数在共享集群中,没有单独设置最大cpu核数的情况下非常有用.