我是靠谱客的博主 认真蚂蚁,最近开发中收集的这篇文章主要介绍MapReduce运行时出现java.lang.NoClassDefFoundError,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近在编写MapReduce程序时遇到了一个错误,错误提示信息为:

Error: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration

断断续续解决了好几天都没有解决,最终发现是由于我的Mapper中的setup()方法引用了HBase库的缘故,也即引用了第三方Jar包。于是上网搜索“MapReduce如何调用第三方jar包”,最终参考网友的方法得到解决。三种解决方案如下:

  • 在你的java工程里建立一个lib文件夹,然后把所有引用到的第三方jar包放到里面,最后打包成Jar的时候把lib目录和class文件一块打包即可,hadoop会自动加载lib里面的jar

 

  • 还可以通过命令行配置实现,如:hadoop jar GIS.jar GIS.MapReduce.Test -libjars MapReduceLib/hbase-0.94.6.1.3.0.0-107-security.jar,zookeeper-3.4.5.1.3.0.0-107.jar

   参数“-libjars”的作用是上传本地jar包到HDFS中MapReduce临时目录并将其设置到map和reduce task的classpath中。

 

  • 使用Hadoop的DistriubtedCache。详情参考:http://blog.csdn.net/evo_steven/article/details/14520567

转载于:https://www.cnblogs.com/maybob/p/3598179.html

最后

以上就是认真蚂蚁为你收集整理的MapReduce运行时出现java.lang.NoClassDefFoundError的全部内容,希望文章能够帮你解决MapReduce运行时出现java.lang.NoClassDefFoundError所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部