在eclipse中写mapreduce程序, 引用第三方jar文件, 可以利用eclipse hadoop插件直接run on hadoop提交, 很方便. 不过插件版本要和eclipse匹配, 不然总是local执行, 在50070是没有job产生的.
如果希望将程序发布成jar文件, 在namenode上通过命令行方式执行, 缺少了eclipse帮忙自动配置jar文件, 会遇到java.lang.ClassNotFoundException, 这个问题可分成两种情况讨论.
一. hadoop命令式如何执行的?
其实$HADOOP_HOME/bin/hadoop是一个脚本文件. 以下wordcount命令为例
bin/hadoop jar wordcount.jar myorg.WordCount /usr/wordcount/input /usr/wordcount/output
脚本文件解析参数, 配置类路径等, 最终执行的是如下命令:
exec java -classpath $CLASSPATH org.apache.hadoop.util.RunJar $@

本文介绍了在Hadoop中执行MapReduce作业时如何处理引用第三方jar文件的问题。当通过命令行执行jar文件时,可能会遇到ClassNotFoundException。解决方法包括通过命令行参数、配置conf、使用分布式缓存以及将jar文件与程序打包在一起。同时,文章提到了JobTracker和TaskTracker如何获取这些jar文件的过程。
最低0.47元/天 解锁文章
8751

被折叠的 条评论
为什么被折叠?



