2015-04-02 58 views
0

時獲得jSonOject錯誤的hadoop jar命令獲取jSonOject錯誤的hadoop jar命令

ERROR="Error: java\.lang\.ClassNotFoundException: org\.json\.JSONObject 

    15/04/01 18:44:17 INFO mapred.JobClient: Task Id :  attempt_201410201117_0915_m_000000_0, Status : FAILED 
    Error: java.lang.ClassNotFoundException: org.json.JSONObject 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at 

我已經通過編譯Java類時:

$ /usr/bin/javac -cp /opt/cloudera/parcels/CDH-4.7.0 
-1.cdh4.7.0.p0.40/lib/*:/opt/cloudera/parcels/CDH-4.7.0 
-1.cdh4.7.0.p0.40/lib/hadoop/client-0.20/*:/opt/cloudera 
/parcels/CDH-4.7.0-1.cdh4.7.0.p0.40/lib/hadoop/*:/opt/cloudera/parcels/CDH- 4.7.0 
-1.cdh4.7.0.p0.40/lib/org.json.jar/:/opt/cloudera/parcels/ 
CDH-4.7.0-1.cdh4.7.0.p0.40/lib/java-json.jar /var/lib/hadoophdfs/xxx 
/multipleOutJsonEx/PartitionByMultipleOutputs.java 

即使運行使用JSON罐子的Hadoop jar命令文件:

hadoop jar /var/lib/hadoop-hdfs/xxx/jarFiles/multipleoutputs.jar 
PartitionByMultipleOutputs -libjars 
/opt/cloudera/parcels/CDH-4.7.0-1.cdh4.7.0.p0.40/lib/java-json.jar 
/user/xxx/multipleOutTest/json_input.txt /user/nchalasani/output 

所以不知道爲什麼我仍然得到錯誤:

回答

0

基本上下載的JSON-20140107.jar和工作文件夾中提取它

的jar -xvf JSON-20140107.jar

一旦我做到了。我編譯了java程序。我甚至沒有提到classpath中的jsonJar文件。

創建JAR並執行它。

關鍵是提取創建org dir的json jar文件,並且創建一個全新的jar文件包含classes和jsonJar。

相關問題