hadoop 运行mapred程序涉及第三方jar包出现“ClassNotFound”解决办法

6890阅读 0评论2013-03-09 slp195
分类:云计算

比如我们要运行的mapred 是在package slp.nbinput 中

那么classes文件夹中显示如下:

classes/slp/nbinput/xxx.class

我们要加在的包是yy.jar(第三方包),那么我们在classes文件夹下建立lib文件夹,将yy.jar考入lib目录下,然后将classes中的所有文件打包成jar包即可

实例:

mapred程序:nbinput.java

要用到的第三方包:SlpFileInput.jar

root@cloud2:~/hadoop/hadoop-0.20.203.0/slp_workspace/source#javac nbinput.java -d classes/

root@cloud2:~/hadoop/hadoop-0.20.203.0/slp_workspace/source#jar -cvf nb.jar -C classes/ .

root@cloud2:~/hadoop/hadoop-0.20.203.0/slp_workspace/source# jar -tf nb.jar 

META-INF/

META-INF/MANIFEST.MF

lib/

lib/SlpFileInput.jar

SlpFileInput.jar

slp/

slp/nbinput/

slp/nbinput/nbinput$InputMapper.class

slp/nbinput/nbinput.class

slp/nbinput/nbinput$MergeReducer.class

其他方法:

http://algoarch.iteye.com/blog/1142681


上一篇:shell java命令行编译的脚本实现
下一篇:Hadoop在网站备份中的应用