0

交換と Giraph をスタックするのは初めてなので、間違いを見逃さず、明確な質問があれば質問してください。

OS: Ubuntu 13.10

Hadoop/Yarn: 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/出力/tiny_graph.out -w 1

スタックトレース:

スレッド「メイン」での例外 java.lang.NullPointerException at org.apache.giraph.yarn.GiraphYarnClient.checkJobLocalZooKeeperSupported(GiraphYarnClient.java:460) at org.apache.giraph.yarn.GiraphYarnClient.run(GiraphYarnClient.java:116) at 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(ネイティブ メソッド) で sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) でorg.apache.hadoop.util の java.lang.reflect.Method.invoke(Method.java:606) の .reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)RunJar.main(RunJar.java:212)

どうやら飼育員関係のようです。Zookeeper をインストールしましたが、構成が間違っているように見える前に使用していませんでした。関連するオプションを試してみまし-Dgiraph.zkList=hostname:portたが、「認識されないオプション」例外が発生します。

このシナリオに適した飼育係の設定を探しています。わかりましたら返信を差し上げます。

4

2 に答える 2

1

NPE の理由は、おそらく ZK 設定を確認するための giraphConf がないことです。これは実行中の初期の問題によるものだと思います。サンプル jar が -yj 引数を使用して提供されていないようです。「hadoop jar」で実行する jar は通常、giraph-core そのものです。

頑張ってください。さらに問題が発生した場合は、Giraph ユーザー リストに投稿してください。

于 2013-12-08T18:17:27.320 に答える
1

This is an example how you can specify -D flags:

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

Btw local zookeeper is not supported in Giraph yet (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.");
     }
  }

Unfortunately checkZkList is NULL so you will never see this exception :)

于 2013-11-27T02:53:13.683 に答える