0

我有一个很大的边列表作为 5000 个分区 RDD。现在,我正在做一个简单但重洗牌的操作:

val g = Graph.fromEdges(edges, ...).partitionBy(...)
val subs = Graph(g.collectEdges(...), g.edges).collectNeighbors()
subs.saveAsObjectFile("hdfs://...")

这项工作分为 9 个阶段(每个阶段 5000 个任务)。我的集群在同一个本地网络中有 3 个工作人员。尽管 Spark 1.5.0 运行速度更快,并且前几个阶段在满负载下运行,但从一个阶段mapPartitions at GraphImpl.scala:235(任务一直RUNNING持续到实际工作的一台机器完成所有工作。有趣的是,在 Spark 1.3.1 上,所有阶段的任务在集群机器之间平均分配。我怀疑这可能是 1.5.0 中的错误

UPD:似乎问题与数据无关:我随机生成了一个高度同质的图(每个顶点的度数为 5)并观察到相同的行为。所以这要么是一个奇怪的硬件问题,要么是与钨相关的问题。仍然没有确切的答案

4

0 回答 0