运行 hadoop jar 命令时出现 jSonOject 错误

Getting jSonOject error when running hadoop jar command

在 运行 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.run(URLClassLoader.java:366)
    at java.net.URLClassLoader.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 class 通过:

$ /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

所以不确定为什么我仍然收到错误消息:

基本上下载了json-20140107.jar并解压到工作文件夹

jar -xvf json-20140107.jar

我曾经这样做过。我编译了 java 程序。我什至没有在类路径中提到 jsonJar 文件。

创建并执行了 JAR。

关键是提取创建 org 目录的 json jar 文件,并创建一个包含 类 和 jsonJar 的全新 jar 文件。