无法为hadoop生成jar文件

cx6n0qe3  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(418)

我有16个java文件,我正在尝试使用以下命令为hadoop生态系统生成jar文件:

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

java是具有main函数的类,该java文件调用其他java文件。我得到下面这个错误,有人能帮我解决这个问题吗?

  1. JsonV.java:37: error: cannot find symbol
  2. JSONObject obj = new JSONObject(tuple[i]);
  3. ^
  4. symbol: class JSONObject
  5. location: class Map
  6. JsonV.java:37: error: cannot find symbol
  7. JSONObject obj = new JSONObject(tuple[i]);
  8. ^
  9. symbol: class JSONObject
  10. location: class Map
  11. JsonV.java:43: error: cannot find symbol
  12. }catch(JSONException e){
  13. ^
  14. symbol: class JSONException
  15. location: class Map
  16. JsonV.java:58: error: cannot find symbol
  17. }catch(JSONException e){
  18. ^
  19. symbol: class JSONException
  20. location: class Reduce
o8x7eapl

o8x7eapl1#

如果使用java7&javax.json库,则不需要包含任何外部文件。但是如果使用java6&org.json库,就必须显式地添加jar。但它似乎在eclipse中起作用。所以我猜你是在用jdk6和hadoop。如果您将其更改为用于hadoop的jdk7,问题将得到解决。
它在eclipse中工作,因为您使用jdk7配置了构建路径。
如果您使用maven,就必须在pom.xml文件中提到json lib依赖项。
如果不使用maven,只需将json lib jar复制粘贴到hadoop lib dir中,然后重新启动hadoop。会有用的。

相关问题