【问题标题】:Hadoop: strange ClassNotFoundExceptionHadoop:奇怪的 ClassNotFoundException
【发布时间】:2012-06-11 08:44:52
【问题描述】:

我得到一个 classnotfound 异常。声称未找到的类不存在,但类名设置为我的 map reduce 作业的输入文件列表的路径。

INFO  server Running: /usr/lib/hadoop/bin/hadoop --config /var/run/cloudera-scm-agent/process/155-hue/JOBSUBD/hadoop-conf jar tmp.jar /user/hduser/datasets/ /user/hduser/tmp/job_20/ mongodb://slave15/db_8.job_20

Exception in thread "main" java.lang.ClassNotFoundException: /user/hduser/datasets/

at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.hadoop.util.RunJar.main(Runjar.java:190)

正如我们所见,/user/hduser/datasets/ 是输入文件的路径。为什么我收到此错误为ClassNotFoundException?为什么它把它看作一个类?


我发现了自己的错误。我有一个包结构。我需要指定我的包裹信息

/usr/lib/hadoop/bin/hadoop 
    --config /var/run/cloudera-scm-agent/process/155-hue/JOBSUBD/hadoop-conf 
    jar tmp.jar org.myorg.tmp /user/hduser/datasets/ 
    /user/hduser/tmp/job_20/ mongodb://slave15/db_8.job_20

在我的工具中,没有将包作为参数提供给 Java 的选项。所以我需要没有包装。但是由于缺少此输入文件路径之前的参数,因此出现以下错误。

我的课程直接在根目录下的 tmp.jar 中。我的意思是没有 org.myorg 等...

解决方案:

jar cmf [manifest_file] [jar_name.jar] -C [folder_of_classes] [path_for_jar_file]

它将manifest_file的内容与jar归档中生成的manifest文件合并。在 manifest_file 中包含以下行 主类:[Name_Of_Class]

【问题讨论】:

    标签: java class hadoop mapreduce hadoop-streaming


    【解决方案1】:

    无论是否存在包层次结构(如果没有,则说明您做错了什么)您仍然需要为其提供包含main 的类的名称。 p>

    例如,the docs 有一个示例,其中主类是 org.myorg.WordCount。即使 WordCount 在默认包中,如果 jar 文件在清单中不包含主类,也应该指定它:

    bin/hadoop jar /usr/joe/wordcount.jar WordCount /usr/joe/wordcount/input /usr/joe/wordcount/output
    

    我假设您也可以像使用任何 jar 一样在清单中指定主类; class 参数在这些文档中显示为可选。

    【讨论】:

    • 是的,问题是我没有在 jar 参数后输入 WordCount 的任何选项。如何在清单文件中指定它?由于只有具有 main 方法的外部类,它不会自己指定吗?
    • @Bob 不,JVM 不会扫描类路径上的所有类以查看是否只有一个具有psvm。你是什​​么意思你“没有任何选择”来包括一个类?有关详细信息,请参阅 Jar file spec,特别是 Main-Class 条目。
    • 我使用了一个特定的工具,它要求清单文件包含主类信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多