我正在使用Hadoop for Dummies学习Hadoop。我已经成功地运行了第一步,如安装,创建硬盘和存储数据,运行猪脚本等。我已经创建了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)有人能帮我改正这个错误吗?
发布于 2015-05-29 14:49:56
这是因为您的编译器没有获得jar FlightsByCarrier中的main方法。可能您尚未将文件复制到硬盘文件系统,或者您的文件路径不是appropriate...check once..and,请尝试
发布于 2015-05-31 03:24:29
您的JAR文件无法定位主类名称,如果您在主类中使用任何包名称,请在运行程序时指定完整名称和包。
例如:hadoop jar FlightsByCarrier.jar com.dev.FlightsByCarrier /input /output
您还可以在创建JAR文件时包含主类。
在选择路径后创建JAR文件,然后单击下一步-->要求选择主类-->浏览名称并选择-->单击确定
在本例中,运行不带类名的命令。
hadoop jar FlightsByCarrier.jar /input /output
希望这能解决你的问题。
https://stackoverflow.com/questions/30477433
复制相似问题