2014-12-06 96 views
1

我正在使用木匠和拆分功能的地图减少联接问题。我在Google上搜索了很多,发现在项目的引用库中添加了guava-18.0.jar文件。我还附上的Javadoc位置的jar文件,但仍然收到此错误提到如下:加入地图减少

Error: java.lang.ClassNotFoundException: com.google.common.base.Splitter 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at edu.cs.okstate.cs.Partitioning.Partition_Mapper.setup(Partition_Mapper.java:29) 
    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:142) 
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764) 
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:364) 
    at org.apache.hadoop.mapred.Child$4.run(Child.java:255) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190) 
    at org.apache.hadoop.mapred.Child.main(Child.java:249) 
+0

当你尝试启动这个工作时,这个问题会被抛出吗? – markg 2014-12-06 03:18:42

+0

其实它说错误:java.lang.ClassNotFoundException:com.google.common.base.Splitter – 2014-12-06 03:30:29

+0

你能显示你执行的命令吗? – 2014-12-06 04:20:14

回答

0

我猜您使用的IDE来管理你的项目,而不是一个依赖管理工具(Maven的,摇篮, Ant + Ivy ...),并且Guava jar实际上并不会在您的Hadoop作业的类路径中结束。

确保它与部署的内容捆绑在一起。