错误: 执行hadoop权威指南上MaxTemperature程序出现Mapper类ClassNotFoundException异常:

解决: 将书上的

JobConf job = new JobConf(MaxTemperature.class) ;
改为:
JobConf job = new JobConf() ;

job.setJar("/root/hadoop-resources/code/maxtemperature.jar");

下面是我解决过程:

郁闷一天了,明明照着书(hadoop权威指南)上写的,但是在执行hadoop MaxTemperature 时总是出现Mapper类找不到。

发现可能是环境变量的问题。于是在/etc/profile中配置hadoop环境变量:

export hadoop_HOME="/usr/hadoop"
for f in $hadoop_HOME/hadoop-*.jar; do
HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:$f
done
for f in $hadoop_HOME/lib/*.jar;do
HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:$f
done
export HADOOP_CLASSPATH=".$HADOOP_CLASSPATH"

执行,错误仍然存在。

然后发现网上说是需要打包,我认为应该不需要打包的,书上都没有到打包,我用的hadoop版本和他用的是一样的。但是首先解决问题吧,于是退而求其次。

将生成的class文件打包为jar:

jar -cvf classes/*.class

然后使用:

hadoop jar maxtemperature.jar Maxtemperature input/sample.txt output

执行命令,发现错误依旧。

然后发现网上别人的程序执行就正常了,发现他的jar是放在hadoop安装目录的bin下的。于是我充满疑问的将我的jar复制到bin下,然后执行,好了~~~!!!!

所以这是一种解决方案,将jar复制到hadoop下就可以正常运行了。

但这种方案实在太死板了,最后又在stackoverflow上找到一种方法,书上的示例代码写的是

JobConf job = new JobConf(MaxTemperature.class) ;

改为:

JobConf job = new JobConf() ;

job.setJar("/root/hadoop-resources/code/maxtemperature.jar");

然后打包,运行,不算完美的解决~~~~

最新文章

  1. jquery option
  2. Win7 安装SQL SERVER 2012需要SP1补丁
  3. 实现一个 能在O(1)时间复杂度 完成 Push、Pop、Min操作的 栈
  4. 云存储的那些事(2)——数据分布算法CRUSH
  5. jQuery.queue源码分析
  6. Android屏幕适配全攻略(最权威的官方适配指导)(转),共大家分享。
  7. JS插件excanvas的使用方法
  8. php中GD库的一些简单使用
  9. youphp学习整理
  10. Pure Css 菜单的使用
  11. uva 12100 Printer Queue
  12. magento后台登陆后,没任何提示,又跳转到登陆页面
  13. canvas——随机生成迷宫
  14. ABP官方文档翻译 6.1.3 异常处理
  15. Android中典型的ROOT原理(5)
  16. DELPHI中build和compile有什么区别?
  17. Win一键查看用户密码
  18. VC++6.0相对路径无效的解决办法
  19. How to create Excel file in C#
  20. Eloquent Observer 的小坑

热门文章

  1. cnetos7.0 安装mysql
  2. PHP单例模式
  3. Cocoapods - pod install 成功后找不到头文件解决
  4. popupwindow的基本使用以及基本动画效果
  5. 判断是否为gif/png图片的正确姿势
  6. Linux内核源代码获取教程
  7. 指令<AngularJs>
  8. Console app 里的依赖注入及其实例生命周期
  9. Spring集成JUnit测试
  10. LOL(英雄联盟)提示不支持虚拟机登录,解决方法