我的星盘集群有一个主服务器和三个工作人员(在4台不同的机器上,每台机器上都有一个核心),其他设置如下图所示,其中spark.cores.max设置为3,spark.executor.cores还设置了3 (在pic-1中)。
但是,当我将我的工作提交给Spark集群时,我可以从Spark中看到只使用一个执行器(根据used 和RDD在pic-2中阻止),但并不是所有的执行程序。在这种情况下,处理速度比我预期的要慢得多。
既然我把最大内核设为3,难道不是所有的执行者都习惯这个工作吗?
如何将火花配置为将当前作业分发给所有执行者,而不只是一个运行当前作业的执行器?
非常感谢。
------------------pic-1:

------------------pic-2:

发布于 2015-05-15 08:01:19
你说你在运行两个接收器,它们是什么样的接收器(Kafka,Hdfs,Twitter?)
你用的是哪个火花版本?
根据我的经验,如果您使用的是除文件接收器以外的任何接收器,那么它将永久占用一个核心。因此,当你说你有2个接收器,那么2个核心将被永久地用于接收数据,所以你只剩下一个核心来做这项工作。
请张贴火花源主页截图。还有约伯的流媒体页面截图。
发布于 2015-05-15 02:52:58
在火花流中,只发射一个接收器,从输入源获取数据到RDD。
在第一次转换后重新划分数据可以增加并行性。
https://stackoverflow.com/questions/30246963
复制相似问题