【问题标题】:Hadoop Min Max Exception in thread "main" java.lang.ClassNotFoundException:线程“主”java.lang.ClassNotFoundException 中的 Hadoop 最小最大异常:
【发布时间】:2019-10-18 19:47:42
【问题描述】:

我是 Hadoop 的新手。我尝试编写一个程序来获取每年的最小值和最大值。数据集如下所示:

Product code,Station number,Year,Month,Monthly Precipitation Total (millimetres),Quality
IDCJAC0001,023093,1978,01,4.6,Y
IDCJAC0001,023093,1978,02,11.4,Y
IDCJAC0001,023093,1978,03,4.8,Y
IDCJAC0001,023093,1978,04,46.2,Y
IDCJAC0001,023093,1978,05,52.7,Y

我正在使用 mac 并在我的学校集群上执行 Hadoop。 这是我的命令行:

hadoop jar hw1-1.0-SNAPSHOT.jar /samplefolder/IDCJAC0001Data1.csv /OUTPUT

但是结果显示error:Exception in thread "main" java.lang.ClassNotFoundException: /samplefolder/IDCJAC0001Data1/csv

我在网站上搜索过,尝试了hadoop jar hw1-1.0-SNAPSHOT.jar org.mycompany.hw1.SolarMinMax /samplefolder/IDCJAC0001Data1.csv /OUTPUT等不同的命令,但结果都是一样的……

请帮我解决这个问题

【问题讨论】:

    标签: java hadoop


    【解决方案1】:

    你需要运行

    hadoop jar hw1-1.0-SNAPSHOT.jar org.mycompany.hw1.SolarMinMax /samplefolder/IDCJAC0001Data1.csv /OUTPUT
    

    然后将您的代码更改为

    FileInputFormat.addInputPath(job, new Path(args[1]));
    FileOutputFormat.setOutputPath(job, new Path(args[2]));
    

    因为args[0] 是类名。

    【讨论】:

    • 感谢您的回复。我更改了代码,并按照您所说的使用命令行运行,但结果仍然显示:线程“main”中的异常 java.lang.ClassNotFoundException: org.mycompany.hw1.SolarMinMax
    • 好的,那么你的 JAR 一定不能正确构建,或者类不在你说的包中。
    • 哦,它有效。但它显示另一个错误...java.lang.NumberFormatException:对于输入字符串:“每月降水总量(毫米)”
    • 至于这个新问题,看起来您正在阅读标题行,并且您也没有检查数据以确保每个条目实际上是一个数字。在编写 MR 应用程序时,您总是必须假设您的数据不干净。见stackoverflow.com/questions/37541109/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 2017-02-12
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多