简体   繁体   English

无法为Hadoop生成jar文件

[英]Unable to generate jar file for Hadoop

I have 16 Java files and I am trying to generate JAR files for the Hadoop ecosystem using the below command: 我有16个Java文件,我正在尝试使用以下命令为Hadoop生态系统生成JAR文件:

javac -classpath /usr/local/hadoop/hadoop-core-1.0.3.jar:/usr/local/hadoop/lib/commons-cli-1.2.jar  JsonV.java

JsonV.java is the class which has main function and this Java file calls other Java files. JsonV.java是具有main函数的类,这个Java文件调用其他Java文件。 I am getting this below error, can anybody help me resolve this please? 我收到以下错误,有人可以帮我解决这个问题吗?

JsonV.java:37: error: cannot find symbol
JSONObject obj = new JSONObject(tuple[i]);
                     ^ 
  symbol:   class JSONObject
  location: class Map
JsonV.java:37: error: cannot find symbol
                    JSONObject obj = new JSONObject(tuple[i]);
                                         ^
  symbol:   class JSONObject
  location: class Map
JsonV.java:43: error: cannot find symbol
            }catch(JSONException e){
                   ^
  symbol:   class JSONException
  location: class Map
JsonV.java:58: error: cannot find symbol
            }catch(JSONException e){
                   ^
  symbol:   class JSONException
  location: class Reduce

If you use Java 7 & javax.json lib, you don`t need to include any external files. 如果您使用Java 7和javax.json lib,则不需要包含任何外部文件。 But if you use Java 6 & org.json lib, you have to add JAR explicitly. 但是如果使用Java 6&org.json lib,则必须显式添加JAR。 But it seems it works in eclipse. 但似乎它在日食中起作用。 So I guess you are using jdk6 with hadoop. 所以我猜你正在使用带有hadoop的jdk6。 If you change it to jdk 7 for hadoop, the problem will be solved. 如果你把它更改为jdk 7 for hadoop,问题就会解决。

It works in eclipse because you configured your build path with jdk 7. 它在eclipse中工作,因为您使用jdk 7配置了构建路径。

If you use maven, you have to mention the json lib dependencies in pom.xml file. 如果使用maven,则必须在pom.xml文件中提及json lib依赖项。

If you don't use maven, just copy paste your json lib jars in hadoop lib dir and restart hadoop. 如果你不使用maven,只需在hadoop lib dir中复制粘贴你的json lib jar并重启hadoop。 It will work. 它会工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM