我目前正在集群中执行K-Means算法。
在相同配置下的连续执行(相同数量的执行程序,RAM,迭代,数据集)之间,任务,作业和阶段的数量可以变化很大。超过10次执行任务数量达到约500个任务的标准偏差。
这是正常的吗?在相同的配置下,DAG不应该是相同的吗?
我正在使用Scala运行Spark实现K-Means。
这是完全正常的行为。
K-Means收敛所需的迭代次数取决于质心的初始选择,并且该过程是完全(随机初始化模式)或部分(K-Means ||初始化模式)随机。
由于每次迭代触发一个作业(并创建一个单独的DAG),因此阶段数和因此任务与满足收敛标准之前执行的迭代次数成正比。