在centOS上的Hadoop BigTop。无法运行MapReduce应用程序 - FlightsByCarrier

时间:2015-05-27 08:47:07

标签: mapreduce

我正在使用Hadoop for Dummies学习Hadoop。我已成功运行thr第一步,如安装,创建HDFS和存储数据,运行Pig脚本等。 我创建了FlightsByCarries.jar文件。

当我运行书中给出的代码时,我收到一个错误:

[root@localhost totalmiles]# hadoop jar /home/tom/Desktop/totalmiles/FlightsByCarrier.jar FlightsByCarrier /user/root/airline-data/2008.csv /user/root/output/flightsCount
Exception in thread "main" java.lang.ClassNotFoundException: FlightsByCarrier
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.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 java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:274)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:205)

有人可以帮我纠正一下吗?

2 个答案:

答案 0 :(得分:0)

这是因为您的编译器没有在jar FlightByCarrier中获取主方法。您可能无法将文件复制到hdfs或文件路径不合适...请检查一次..然后尝试

答案 1 :(得分:0)

如果您在主类中使用任何软件包名称,则JAR文件无法找到主类名称,请在运行程序时指定完整名称和包。

例:   hadoop jar FlightsByCarrier.jar com.dev.FlightsByCarrier / input / output

您还可以在创建JAR文件时包含主类。

选择路径后创建JAR文件,然后单击下一步 - >要求选择主类 - >浏览名称并选择 - >单击确定

在这种情况下运行没有类名的命令。

hadoop jar FlightsByCarrier.jar / input / output

希望这能解决你的问题。