我正在研究30gb ram的IBM服务器(12核引擎),我已经提供了所有核心,但仍然只使用了1个核心,我在加载文件时尝试了并且使用命令成功了
val name_db_rdd = sc.textFile("input_file.csv",12)
并且能够为启动作业提供所有12个内核的处理,但我想将中间操作之间的操作拆分为执行程序,以便它可以使用所有12个内核。
图片 - 说明
val new_rdd = rdd.repartition(12)
正如您在此图像中所看到的,只有1个执行程序正在运行,并且重新分区功能将数据拆分为一个执行程序的许多任务。
答案 0 :(得分:1)
这取决于你是如何启动这项工作的,但是当你启动你的火花工作时,你可能想要在你的命令行中添加--num-executors。
像
这样的东西spark-submit
--num-executors 10 \
--driver-memory 2g \
--executor-memory 2g \
--executor-cores 1 \
可能适合你。
查看Running Spark on Yarn了解更多详细信息,不过他们提到的一些开关是特定于纱线的。