Apache Giraph - 无法在拆分主/工作模式下运行,因为一次只能执行1个任务

时间:2014-10-03 07:44:34

标签: hadoop mapreduce giraph

我使用PageRank Benchmark示例here使用hadoop 2.2.0运行Giraph 1.0.0。

突然间我得到了这个错误结果:

  

例外   线程"主要" java.lang.IllegalArgumentException异常:   checkLocalJobRunnerConfiguration:使用LocalJobRunner时,必须有   只有一个工人,因为一次只有一个任务!在   org.apache.giraph.job.GiraphJob.checkLocalJobRunnerConfiguration(GiraphJob.java:151)     在org.apache.giraph.job.GiraphJob.run(GiraphJob.java:225)at   org.apache.giraph.benchmark.GiraphBenchmark.run(GiraphBenchmark.java:90)     在org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)at   org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)at   org.apache.giraph.benchmark.PageRankBenchmark.main(PageRankBenchmark.java:71)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:606)at   org.apache.hadoop.util.RunJar.main(RunJar.java:212)

当我将工人数量改为1时,我得到了:

  

线程中的异常" main" java.lang.IllegalArgumentException异常:   checkLocalJobRunnerConfiguration:当你使用LocalJobRunner时   由于只有1个任务,因此无法在拆分主/工作模式下运行   一时间!在   org.apache.giraph.job.GiraphJob.checkLocalJobRunnerConfiguration(GiraphJob.java:157)     在org.apache.giraph.job.GiraphJob.run(GiraphJob.java:225)at   org.apache.giraph.benchmark.GiraphBenchmark.run(GiraphBenchmark.java:90)     在org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)at   org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)at   org.apache.giraph.benchmark.PageRankBenchmark.main(PageRankBenchmark.java:71)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:606)at   org.apache.hadoop.util.RunJar.main(RunJar.java:212)

任何解决方案?

1 个答案:

答案 0 :(得分:9)

您好我假设您没有在群集上运行?如果我在我们的演示VM中运行,我会得到同样的错误。

您可以在giraph-site.xml中禁用拆分主工作线程

giraph.SplitMasterWorker=false

如果您只想在一次性执行期间禁用此功能,您还可以将其作为命令行参数传递给您的程序。

-ca giraph.SplitMasterWorker=false

例如,我为我的大数据讲座运行了一个演示:

#!/bin/bash

yarn jar /root/giraph-0.0.1-SNAPSHOT-jar-with-dependencies.jar org.apache.giraph.GiraphRunner at.jku.tk.steinbauer.bigdata.giraph.MaxInDegreeComputation -vif org.apache.giraph.io.formats.JsonLongDoubleFloatDoubleVertexInputFormat -vip /user/hue/graph/tinygraph.txt -of org.apache.giraph.io.formats.IdWithValueTextOutputFormat  -op /user/hue/graph/degree -w 1 -ca giraph.SplitMasterWorker=false