在 rdd.TreeAggregate 中获得更多 Reduce 任务
Get More Reduce Tasks in rdd.TreeAggregate
再问你一个 Spark 问题!
所以我正在使用 mllibs 原生 SVMWithSGD 训练一个 SVM 模型。训练 rdd 被分成 114 个分区,每个分区大约有 2700 个实例。
每个迭代作业分为两个阶段。第一阶段,随我的节点线性扩展。然而,第二阶段只分为 10 个左右的任务,比可用的 V 核少得多,所以这个阶段不是线性扩展的。
我想把这个阶段分成更多的任务,让更多的执行者并行处理。有什么办法可以做到这一点吗?
此外,还有一个巨大的调度程序延迟,我已经了解到这是执行程序和调度程序之间进行通信所花费的时间。
你的特征向量的维度是多少? 2700 个训练实例的 114 个分区只有 300k 个训练实例。根据维度,您应该考虑将 RDD 重新分区为更少数量的分区(比如 5-10)。
再问你一个 Spark 问题!
所以我正在使用 mllibs 原生 SVMWithSGD 训练一个 SVM 模型。训练 rdd 被分成 114 个分区,每个分区大约有 2700 个实例。
每个迭代作业分为两个阶段。第一阶段,随我的节点线性扩展。然而,第二阶段只分为 10 个左右的任务,比可用的 V 核少得多,所以这个阶段不是线性扩展的。
我想把这个阶段分成更多的任务,让更多的执行者并行处理。有什么办法可以做到这一点吗?
此外,还有一个巨大的调度程序延迟,我已经了解到这是执行程序和调度程序之间进行通信所花费的时间。
你的特征向量的维度是多少? 2700 个训练实例的 114 个分区只有 300k 个训练实例。根据维度,您应该考虑将 RDD 重新分区为更少数量的分区(比如 5-10)。