2015-04-02 60 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。

相关问题