运行hadoop jar命令时出现jSonOject错误
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 jar文件运行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 :(得分:0)
基本上下载了json-20140107.jar并将其解压缩到工作文件夹
jar -xvf json-20140107.jar
一旦我这样做了。我编译了java程序。我甚至没有提到类路径中的jsonJar文件。
创建JAR并执行它。
关键是提取创建org目录的json jar文件,并创建一个包含类和jsonJar的全新jar文件。