使用Spark的ALS Mlib算法时,数据未在执行程序上以最佳方式进行分区

时间:2017-08-22 13:29:10

标签: performance scala apache-spark apache-spark-mllib partitioning

我在Spark MLlib中使用ALS算法。每当我运行我的代码时,数据只缓存在1或2个执行程序上。我有8个执行程序正在运行,但只在一个节点上缓存会大大降低我的工作性能。缓存的数据是ALS在内部使用的数据,即itemBlocks,userBlocks,userFactors等。我已经给出了分区的数量,并在模型中使用了隐式参数。 在某些用例中,我的数据量非常小。例如 - 40-50MB。但我仍然无法理解为什么它会缓存在一个节点上。有时也使用3-4个执行器,有时1-2个。分区非常随机。

0 个答案:

没有答案