我可以在具有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个核心......
如何更改实例使用的核心数?
答案 0 :(得分:3)
工作人员使用的CPU /核心数在开始时作为环境变量给出,您可以将其设置在两个位置:
conf/spark-env.sh
SPARK_WORKER_CORES
。--cores 4
启动时作为命令行参数。