- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法处理具有 230M 边的图形。我克隆了 apache.spark,构建了它,然后在集群上进行了尝试。
我使用 Spark 独立集群:
-5 machines (each has 12 cores/32GB RAM)
-'spark.executor.memory' == 25g
-'spark.driver.memory' == 3g
图有 231359027 条边。其文件大小为 4,524,716,369 字节。图形以文本格式表示:
sourceVertexId destinationVertexId
我的代码:
object Canonical {
def main(args: Array[String]) {
val numberOfArguments = 3
require(args.length == numberOfArguments, s"""Wrong argument number. Should be $numberOfArguments .
|Usage: <path_to_grpah> <partiotioner_name> <minEdgePartitions> """.stripMargin)
var graph: Graph[Int, Int] = null
val nameOfGraph = args(0).substring(args(0).lastIndexOf("/") + 1)
val partitionerName = args(1)
val minEdgePartitions = args(2).toInt
val sc = new SparkContext(new SparkConf()
.setSparkHome(System.getenv("SPARK_HOME"))
.setAppName(s" partitioning | $nameOfGraph | $partitionerName | $minEdgePartitions parts ")
.setJars(SparkContext.jarOfClass(this.getClass).toList))
graph = GraphLoader.edgeListFile(sc, args(0), false, edgeStorageLevel = StorageLevel.MEMORY_AND_DISK,
vertexStorageLevel = StorageLevel.MEMORY_AND_DISK, minEdgePartitions = minEdgePartitions)
graph = graph.partitionBy(PartitionStrategy.fromString(partitionerName))
println(graph.edges.collect.length)
println(graph.vertices.collect.length)
}
}
在我运行它之后,我遇到了一些 java.lang.OutOfMemoryError: Java heap space
错误,当然我没有得到结果。我的代码有问题吗?或者在集群配置中?因为它适用于相对较小的图形。但对于这张图,它从来没有奏效。 (而且我不认为 230M 边是太大的数据)
感谢您的任何建议!
已解决
我没有为驱动程序放置足够的内存。我已将集群配置更改为:
-4 workers (each has 12 cores/32GB RAM)
-1 master with driver program (each has 12 cores/32GB RAM)
-'spark.executor.memory' == 25g
-'spark.driver.memory' == 25g
而且收集所有的顶点和边来计算它们也不是一个好主意。这样做很容易:graph.vertices.count
和 graph.edges.count
最佳答案
我建议您进行二进制搜索以找到集群可以处理的最大数据量。取图表的 50%,看看是否可行。如果是,请尝试 75%。等等
我的经验法则是,对于给定大小的输入,您需要 20-30 倍的内存。对于 4.5 GB,这表明限制将在 100 GB 左右。你正好有那个数额。我没有使用 GraphX 的经验:它可能会增加内存使用的另一个乘数。在我看来,您只是没有足够的内存。
关于apache-spark - GraphX 不适用于相对较大的图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29050904/
我正在通过 PHP 将 .csv 中的两行插入到表中。 我还会跟踪任何错误,如果发生错误,我不会提交事务。插入表后,我检索结果行的 ID(全部在一个事务中提交),并且 csv 的第一行对应于第二个 I
一个应用程序托管一个具有三个接口(interface)的 Web 服务,用于三个单独且独立的操作,所有这些操作都在应用程序的不同组件中实现,彼此独立,例如在不同的包等中,所以他们对彼此了解不多,只共享
我希望在单击特定表格数据单元格时同时选中单选按钮和单选按钮单击事件。我已经使用以下方法实现了这一点: $(document).ready(function() { $("td").click(
JSFiddle:https://jsfiddle.net/oyp1zxaq/ 本质上,我只是想在较大的 div 中放置四个具有定义宽度的较小 div,但我希望它们在其中间隔开。 我想知道是否有一种方
我在一个布局中有两个 View 。我将分别称它们为 View A 和 View B。 ┌──────┐ │┌─┐┌─┐│ ││A││B││ │└─┘└─┘│ └──────┘ 父布局(包括View A
我是一名优秀的程序员,十分优秀!