2013-11-20 64 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