2013-11-20 60 views
0

堆栈交换和Giraph的新功能,请忽略错误并提出任何澄清问题。zookeeper为Hadoop 2.2.0上的Giraph 1.0配置

OS:ubuntu的13.10

的Hadoop /纱线:Hadoop的2.2.0 /(2节点群集)

Giraph:1.0.0(编辑:中继线)

我越来越一个NullPointerException(NPE)当我尝试运行下面的例子:

$ hadoop的罐子 $ GIRAPH_HOME/giraph-实例/目标/ giraph-例子-1.1.0-SNAPSHOT换的hadoop-2.2.0 -jar -with-dependencies.jar org.apache.giraph.GiraphRunner org.apache.giraph.examples.SimpleShortestPathsComputation -vif org.apache.giraph.io.formats.JsonLongDoubleFloatDoubleVertexInputFormat -VIP /user/hduser/rrdata/tiny_graph.txt -vof org.apache .giraph.io.formats.IdWithValueTextOutputFormat -OP /user/hduser/rrdata/output/tiny_graph.out -w 1

堆栈跟踪:在螺纹

异常 “主” 的java.lang .NullPointerException在 org.apache.giraph.yarn.GiraphYarnClient.checkJobLocalZooK eeperSupported(GiraphYarnClient.java:460) 在 org.apache.giraph.yarn.GiraphYarnClient.run(GiraphYarnClient.java:116) 在org.apache.giraph.GiraphRunner.run(GiraphRunner.java:96)在 组织.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)at org.apache.giraph.GiraphRunner.main(GiraphRunner的.java:126)在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43 ) at java.lang.reflect.Method.invoke(Method.java:6 06)在 org.apache.hadoop.util.RunJar.main(RunJar.java:212)

看来饲养员有关。我安装了zookeeper,但没有使用它,似乎配置是错误的。我试过-Dgiraph.zkList=hostname:port和相关选项,但得到'无法识别的选项'异常。

寻找这种情况下正确的动物园管理员设置。如果我想出来,我会发布回复。

+0

你确定你正在运行1.0而不是中继? – marcorossi

+0

最初,我从'apache.claz.org/giraph/giraph-1.0.0/'下载了1.0.0;但切换到github'github.com/apache/giraph.git';因为缺少源代码并且hadoop2.0.0二进制文件未被打包。这是映射到中继?我是github新手,还没有看过分支。 – Vishal

+0

我刚刚检查过,你是对的,我在树干上。这是否会改变上述问题? – Vishal

回答

1

这是一个例子,你如何指定-D标志:

hadoop jar giraph-examples-1.1.0-SNAPSHOT-for-hadoop-2.2-jar-with-dependencies.jar org.apache.giraph.GiraphRunner -D giraph.zkList="zkNode.net:2081" org.apache.giraph.examples.SimpleShortestPathsComputation -vif org.apache.giraph.io.formats.JsonLongDoubleFloatDoubleVertexInputFormat -vip /user/rav/giraph/input/tiny_graph.txt -vof org.apache.giraph.io.formats.IdWithValueTextOutputFormat -op /user/rav/giraph/output/shortestpaths -w 1 

顺便说一下当地的饲养员不Giraph尚不支持(GiraphYarnClient):

/** 
    * Check if the job's configuration is for a local run. These can all be 
    * removed as we expand the functionality of the "pure YARN" Giraph profile. 
    */ 
    private void checkJobLocalZooKeeperSupported() { 
    final boolean isZkExternal = giraphConf.isZookeeperExternal(); 
    final String checkZkList = giraphConf.getZookeeperList(); 
    if (!isZkExternal || checkZkList.isEmpty()) { 
     throw new IllegalArgumentException("Giraph on YARN does not currently" + 
      "support Giraph-managed ZK instances: use a standalone ZooKeeper."); 
    } 
    } 

不幸checkZkList为NULL,所以你会从来没有看到这个例外:)

+0

非常感谢!我曾尝试过一些变化,但找不到文档来确切地说明外部动物园管理员对giraph。此问题已解决,但现在又遇到另一个例外。 – Vishal

+0

顺便说一句,你知道如何在配置文件而不是命令行中指定它吗? – Vishal

+0

我不知道如何在conf文件中设置它。你现在得到的其他异常是什么? – ravwojdyla

1

NPE的原因可能是缺少一个giraphConf来检查ZK设置。我认为这是由于运行中的早期问题。看起来像jar没有使用-yj参数提供的例子。用“hadoop jar”运行的jar通常是giraph-core本身。

祝你好运,如果你有更多的麻烦,请张贴在Giraph用户列表上。

+0

是的,ravwojdyla帮助了与此同时,我嗨t其他问题,并转移到其他紧迫的项目,但会尝试您和其他人在用户列表中提供的建议。目前正在评估荣格,但由于规模,宁愿使用Giraph。 – Vishal