运行 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 文件。
在 运行 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 文件。