【问题标题】:DFS performance of Spark GraphX vs simple Java DFS implementationSpark GraphX 的 DFS 性能与简单的 Java DFS 实现
【发布时间】:2018-12-11 05:23:21
【问题描述】:

考虑到一个有 14,000 个顶点和 14,000 条边的图,我想知道为什么 GraphX 比图的 java 实现花费更多的时间来获取从一个顶点到叶子的所有路径?

java 实现:几秒钟

Graphx 实现:几分钟

spark GraphX 真的适合这种处理吗?

我的系统: i5-7500 @3.40GHz, 8GB 内存

pregel 的算法:

val sourceId: VertexId = 42 // The ultimate source
  // Initialize the graph such that all vertices except the root have canReach = false.
  val initialGraph: Graph[Boolean, Double]  = graph.mapVertices((id, _) => id == sourceId)
  val sssp = initialGraph.pregel(false)(
    (id, canReach, newCanReach) => canReach || newCanReach, // Vertex Program
    triplet => {  // Send Message
      if (triplet.srcAttr && !triplet.dstAttr) {
        Iterator((triplet.dstId, true))
      } else {
        Iterator.empty
      }
    },
    (a, b) => a || b // Merge Message

【问题讨论】:

    标签: java scala apache-spark spark-graphx


    【解决方案1】:

    在 Graphx 上实现一些算法时发生在我身上,我相信 GraphX 非常适合分布式环境,当您将大图拆分到多台机器上时。 但是现在当你说你使用一个节点时,你检查过使用的工人数量吗?执行者人数?每个执行程序使用的内存量?这些配置参数在提高或降低 GraphX 应用程序的性能方面肯定起着重要作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 2021-03-19
      • 2015-01-17
      相关资源
      最近更新 更多