Apache zookeeper zookeeper在Hadoop 2.2.0上为Giraph 1.0进行配置

Apache zookeeper zookeeper在Hadoop 2.2.0上为Giraph 1.0进行配置,apache-zookeeper,yarn,giraph,Apache Zookeeper,Yarn,Giraph,新的堆栈交换和Giraph,所以请忽略错误,并提出任何澄清问题 操作系统:ubuntu 13.10 Hadoop/Thread:Hadoop-2.2.0/(2节点集群) Giraph:1.0.0(编辑:主干) 当我尝试运行以下示例时,得到一个NullPointerException(NPE): $hadoop jar $GIRAPH_HOME/GIRAPH examples/target/GIRAPH-examples-1.1.0-SNAPSHOT-for-hadoop-2.2.0-jar-wi

新的堆栈交换和Giraph,所以请忽略错误,并提出任何澄清问题

操作系统:ubuntu 13.10

Hadoop/Thread:Hadoop-2.2.0/(2节点集群)

Giraph:1.0.0(编辑:主干)

当我尝试运行以下示例时,得到一个NullPointerException(NPE):

$hadoop jar $GIRAPH_HOME/GIRAPH examples/target/GIRAPH-examples-1.1.0-SNAPSHOT-for-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

堆栈跟踪:

线程“main”java.lang.NullPointerException中的异常位于 org.apache.giraph.warn.giraphyarclient.checkJobLocalZooKeeperSupported(giraphyarclient.java:460) 在 org.apache.giraph.warn.GiraphYarnClient.run(GiraphYarnClient.java:116) 位于org.apache.giraph.GiraphRunner.run(GiraphRunner.java:96) org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)位于 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)位于 org.apache.giraph.GiraphRunner.main(GiraphRunner.java:126)位于 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于 invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:606) org.apache.hadoop.util.RunJar.main(RunJar.java:212)

这似乎与动物园管理员有关。我安装了zookeeper,但之前没有使用过,似乎配置错误。我尝试了
-Dgiraph.zkList=hostname:port
和相关选项,但得到了“Unrecognized option”异常


正在查找此场景的正确zookeeper设置。如果我弄明白了,我会发布回复。

这是一个如何指定-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中还不支持本地zookeeper(GiraphYarnClient):


不幸的是,checkZkList为空,因此您永远不会看到此异常:)

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


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

Thanx很多!我尝试了一些变体,但找不到确切说明giraph外部zookeeper的文档。这个问题已经解决,但现在遇到了另一个异常。顺便说一句,您知道如何在配置文件中而不是在命令行中指定它吗?我不知道如何在conf文件中设置它。您现在遇到的另一个例外是什么?这是因为您的工作人员无法连接到Zookeeper服务器,这是因为您没有用服务器信息替换Zookeeper主机名和端口!另外,如果您查看一下容器的日志,就会非常清楚。用途:纱线原木-applicationId。另外,您能告诉我如何在apache邮件列表上重播您的电子邮件吗?您确定您运行的是1.0而不是trunk吗?最初,我从“apache.claz.org/giraph/giraph-1.0.0/”下载了1.0.0;但是切换到github'github.com/apache/giraph.git';因为缺少源代码,hadoop2.0.0二进制文件没有打包。那是映射到树干的吗?我是github的新手,还没有研究过分支。我刚刚检查过,你说得对,我在主干上。这能改变上述问题吗?是的,ravwojdyla帮了忙。我点击了其他问题并转到了其他紧迫的项目,但将尝试您和其他用户列表上提供的建议。目前正在评估Jung,但由于规模原因,更愿意使用Giraph。
  /**
  * 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.");
     }
  }