如何更改每个工作程序在Spark Standalone模式下使用的CPU数量?

时间:2015-04-23 15:34:54

标签: apache-spark

我可以在具有OS Windows 7,8核CPU和16 GB RAM的计算机上以Spark Standalone模式运行主节点和从节点。

现在我正在尝试更改此机器上的工作人员数量。

正如我在Spark网站上看到的那样,Windows操作系统目前不支持启动脚本。所以我手动启动主人和工人。

在驱动程序中我定义:

SparkConf conf = new SparkConf().setAppName("myapplication")
  .setMaster("spark://fujitsu11:7077")
  .setJars(new String[] {"target/maven1-0.0.1-SNAPSHOT-driver.jar"})
  .set("spark.home","D:/spark")
  .set("spark.executor.memory", "2g")
  .set("spark.worker.instances","2")
  .set("spark.worker.cores", "4"); // I allocate four cores for each worker
JavaSparkContext sc = new JavaSparkContext(conf);

然后在Cygwin,我开始手工制作主守护进程和两名工人。

但是,当我运行我的应用程序并继续http://localhost:8080时,我看到,两个工作人员都试图使用所有8个核心......

enter image description here

如何更改实例使用的核心数?

1 个答案:

答案 0 :(得分:3)

工作人员使用的CPU /核心数在开始时作为环境变量给出,您可以将其设置在两个位置:

  1. conf/spark-env.sh SPARK_WORKER_CORES
  2. 当您将工作器守护程序作为--cores 4启动时作为命令行参数。