问题标签 [giraph]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
giraph - 哪个更好用于管理顶点状态:POJO 实例变量或 Giraph 值?
我对何时可以使用 Vertex 实例变量来维护状态而不是正确的 Giraph 值 ala getValue()感到困惑。我在源代码中找到的一个有趣的示例演示了这两者:SimpleTriangleClosingVertex,它同时具有实例变量 (closeMap) 和自定义顶点值 (IntArrayListWritable)。我有点惊讶使用实例变量是合法的,因为可能会搞砸序列化(?)我的问题:是否有效?如果是这样,我如何选择一个而不是另一个?非常感谢。
giraph - 哪个更好:发送许多小消息或更少的大消息?
我有一个应用程序,其消息传递粒度可以用两种方式编写——发送许多小消息与(可能远)更少的大消息。从概念上讲,移动的是一组“活动”顶点 ID,它们可能会在每个超级步骤中根据顶点管理的已处理列表(顶点值)进行过滤。活到最后的人是幸运的赢家。compute()
计算一组非常适合传出消息的“新来我”传入 ID,但我可以轻松地一次发送每个 ID。我的猜测是发送更少的消息更重要,但是每组可能包含数千个 ID。谢谢你。
PS 一个附带问题:我发现的少数自定义消息类型示例是具有一些原始实例变量的相对简单的对象,而不是集合。将一组 ID 作为消息发送是不是很疯狂?
java - Apache Giraph 1.0.0 - 如何为顶点分配内存?
最近成功创建了一个自定义顶点类,其中每个顶点都有一个LongWritable id,这个id也是它自己的值。我的 Giraph 程序在一个小的顶点集(100,000 个顶点)上成功运行,程序完成并输出预期值。但是,当我将卷增加到 3000 万个顶点时,程序会在总内存用完时挂起(每个映射器的堆大小为 1.5 GB)。由于我的顶点类只包含一个 id 和值(8 + 8 = 16 字节)以及发出的边(平均 8*8*2 = 128 字节),我不明白为什么内存消耗如此之高。从下面的日志消息中可以看出,内存在 1363 MB 处最大为 450 万个顶点,因此当 Giraph 运行时每个顶点占用 317 个字节。Giraph 中有哪些额外的数据结构导致字节/顶点如此之高?
hadoop - 如何控制哪些任务在哪些主机上运行?
我正在运行Giraph ,它在我们的五个主机(四个计算节点和一个头节点 - 称它们为 0-3 和“w”)的小型CDH4 Hadoop 集群上执行 - 请参见下面的版本。所有五台主机都在运行 mapreduce tasktracker 服务,并且“w”也在运行 jobtracker。对于我的特定 Giraph 应用程序(一种寻路)来说,资源很紧张,而且我发现任务的自动调度主机的某些配置比其他配置更好。
更具体地说,我的 Giraph 命令(见下文)指定了四个 Giraph 工作人员,并且在执行时,Hadoop(实际上是Zookeeper,IIUC)创建了五个我可以在 jobtracker Web UI 中看到的任务:一个主服务器和四个从服务器。当它将三个或更多映射任务放在“w”上(例如,01www 或 1wwww)时,该主机会最大化 ram、cpu 和 swap,并且作业会挂起。但是,当系统更均匀地分配工作以使“w”只有两个或更少的任务(例如,123ww 或 0321w)时,工作就可以正常完成。
我的问题是,1)什么程序决定了任务到主机的分配,以及 2)我如何控制它?
非常感谢!
版本
- CDH:4.7.3
- Giraph:编译为“giraph-1.0.0-for-hadoop-2.0.0-alpha”(变更日志开始于:版本 1.0.0 - 2013-04-15)
- Zookeeper 客户端环境:zookeeper.version=3.4.5-cdh4.4.0--1,构建于 09/04/2013 01:46 GMT
Giraph 命令
hadoop - Apache Giraph - 无法在拆分主/工作模式下运行,因为一次只有 1 个任务
我在这里使用 PageRank Benchmark 示例运行 Giraph 1.0.0 和 hadoop 2.2.0 。
突然我得到了这个错误结果:
线程“主”java.lang.IllegalArgumentException 中的异常:checkLocalJobRunnerConfiguration:使用 LocalJobRunner 时,必须只有一个工人,因为一次只有 1 个任务!在 org.apache.giraph.job.GiraphJob.checkLocalJobRunnerConfiguration(GiraphJob.java:151) 在 org.apache.giraph.job.GiraphJob.run(GiraphJob.java:225) 在 org.apache.giraph.benchmark.GiraphBenchmark.run (GiraphBenchmark.java:90) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) 在 org.apache。 giraph.benchmark.PageRankBenchmark.main(PageRankBenchmark.java:71) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl。
当我将工人数量更改为 1 时,我得到:
线程“主”java.lang.IllegalArgumentException 中的异常:checkLocalJobRunnerConfiguration:使用 LocalJobRunner 时,您不能在拆分主/工作模式下运行,因为一次只有 1 个任务!在 org.apache.giraph.job.GiraphJob.checkLocalJobRunnerConfiguration(GiraphJob.java:157) 在 org.apache.giraph.job.GiraphJob.run(GiraphJob.java:225) 在 org.apache.giraph.benchmark.GiraphBenchmark.run (GiraphBenchmark.java:90) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84) 在 org.apache。 giraph.benchmark.PageRankBenchmark.main(PageRankBenchmark.java:71) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect。
有什么解决办法吗?
giraph - 如何在 Giraph 中读取 LZO 压缩的 HDFS 文件
我正在寻找可以读取 LZO 压缩文件的 Giraph 输入格式。看起来 GiraphRunner 默认使用的当前输入格式是 BspInputFormat,它没有提到 LZO 压缩。这只是一个疏忽,我必须实现我自己的 LzoBspInputFormat 类吗?感觉就像某人以前已经做过的事情。
giraph - Giraph:使用文本作为 VertexId
我尝试测试 Giraph。
VertexId 类型文本
输入边基
如果我使用 Text 作为 VertexId,我会得到错误。如果 LongWritable,一切正常。
问题: 1. 使用Text作为VertexId可以吗?2. 如果是,我在做什么?
错误:
自定义格式:
...
主要课程:
测试启动器:
giraph - 吉拉夫和卡桑德拉
有人尝试使用 Giraph 和 DSE Cassandra 吗?
我尝试运行但进程挂起:
21 年 14 月 10 日 16:38:24 信息 mapred.JobClient:正在运行的作业:job_201410211229_0028>
14/10/21 16:38:25 INFO mapred.JobClient: map 80% reduce 0%
命令行是:
dse hadoop jar /usr/local/giraph/giraph-examples/target/giraph-examples-1.1.0-SNAPSHOT-for-hadoop-1.2.1-jar-with-dependencies.jar org.apache.giraph.GiraphRunner -D giraph.zkList=SRVITSD03:22181 org.apache.giraph.examples.SimpleShortestPathsComputation -vif org.apache.giraph.io.formats.JsonLongDoubleFloatDoubleVertexInputFormat -vip /user/hduser/input/tiny_graph.txt -vof org.apache.giraph.io .formats.IdWithValueTextOutputFormat -op /user/rav/giraph/output/shortestpaths -w 4
java - 为什么投机执行对 Giraph 没有意义?
最近我正在运行一些基准测试来了解 Giraph 中的故障转移机制。
其实我很好奇;当工作中的一个工人变慢时,其他工人只会等待它。后来我在GiraphJob.java
:
有谁知道为什么 Giraph 中没有启用推测执行?
谢谢
java - Maven项目生成失败
我使用以下命令生成项目:
$ mvn 原型:生成
构建失败期间出现的错误是: