http://www.cnblogs.com/kaizhangzhang/p/3495438.html

在win7下运行hadoop-1.1.2 worldcount代码的时候出现下面的错误,折腾了差不多一天的时间,才明白导致http://www.cnblogs.com/kaizhangzhang/p/3494753.html这个错误的原因,一下是错误的完整信息:

eclipse显示:

13/12/28 15:44:00 WARN mapred.JobClient: No job jar file set.  User classes may not be found. See JobConf(Class) or JobConf#setJar(String).
13/12/28 15:44:00 INFO input.FileInputFormat: Total input paths to process : 1
13/12/28 15:44:00 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
13/12/28 15:44:00 WARN snappy.LoadSnappy: Snappy native library not loaded
13/12/28 15:44:00 INFO mapred.JobClient: Running job: job_201312281229_0013
13/12/28 15:44:01 INFO mapred.JobClient:  map 0% reduce 0%
13/12/28 15:44:07 INFO mapred.JobClient: Task Id : attempt_201312281229_0013_m_000000_0, Status : FAILED
java.lang.RuntimeException: java.lang.ClassNotFoundException: com.kai.hadoop.MyMapreduce$MyMap
 at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:849)
 at org.apache.hadoop.mapreduce.JobContext.getMapperClass(JobContext.java:199)
 at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:719)
 at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
 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:1149)
 at org.apache.hadoop.mapred.Child.main(Child.java:249)

查看了job的输出日志,显示错误:

java.lang.RuntimeException: java.lang.ClassNotFoundException: 
com.kai.hadoop.WordCount$TokenizerMapper at 
org.apache.hadoop.conf.Configuration.getClass(Configuration.java:849) at 
org.apache.hadoop.mapreduce.JobContext.getMapperClass(JobContext.java:199) at 
org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:719) at 
org.apache.hadoop.mapred.MapTask.run(MapTask.java:370) 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:1149) 
at org.apache.hadoop.mapred.Child.main(Child.java:249) Caused by: 
java.lang.ClassNotFoundException: com.kai.hadoop.WordCount$TokenizerMapper at 
java.net.URLClassLoader$1.run(URLClassLoader.java:366) at 
java.net.URLClassLoader$1.run(URLClassLoader.java:355) 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 
java.lang.Class.forName0(Native Method) at 
java.lang.Class.forName(Class.java:270) at 
org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:802) at 
org.apache.hadoop.conf.Configuration.getClass(Configuration.java:847) ... 8 more

我把这个WorldCount程序打成jar包在ubuntu上是可以正常运行,由于自己个人非常懒,是在不想换开发平台,依然坚持在windows上开发,在网上找了种种方案,最后终于解决了,网上说的也含含糊糊的,东平西凑的理解在一起总结:

  1、网上好多说要设置这job.setJarByClass(WordCount.class);但是hadoop-1.1.2的worldcount源码是有job.setJarByClass(WordCount.class);我们找到conf所在的位置,加conf.set("mapred.jar", "C:\\Users\\win7\\Desktop\\mapreduce.jar");  注意:"mapred.jar"不能改,后面是你导出jar的路径

  2、把工程打成xx.jar就是上面的mapreduce.jar,(右击工程->选择Export->选择要输出的package),我放在"C:\\Users\\win7\\Desktop",一般最好放工程里面,默认路径下

最后运行就可以了,然后就可以正常运行了,哈哈....虽然还是有点麻烦,要打jar包还要每次设置conf.set(),但是至少目前不用换环境了,比起每次上传到ubuntu再运行方便了一点点,对于初学的我来说已经是很好的开始,我觉得自己肯定是哪还没有配置好,应该还可以继续改进,继续研究...希望有知道的大神留下宝贵的意见!!

hadoop错误之ClassNotFoundException的更多相关文章

  1. hadoop错误之ClassNotFoundException(下)

    hadoop开发环境:window上eclipse+虚拟机的ubuntu13.04+hadoop-1.1.2+JDK1.7 在win7下运行hadoop-1.1.2 worldcount代码的时候出现 ...

  2. hadoop 错误处理机制

    hadoop 错误处理机制 1.硬件故障 硬件故障是指jobtracker故障或TaskTracker 故障 jobtracker是单点,若发生故障,目前hadoop 还无法处理,唯有选择最牢靠的硬件 ...

  3. Hadoop java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils

    .jar 学习好友推荐案例的时候,提交运行时报错找不到StringUtils java.lang.ClassNotFoundException: org.apache.commons.lang3.St ...

  4. HADOOP :: java.lang.ClassNotFoundException: WordCount

    I am using eclipse to export the jar file of a map-reduce program. When i am run the jar using comma ...

  5. hadoop错误org.apache.hadoop.yarn.exceptions.YarnException Unauthorized request to start container

    错误: 14/04/29 02:45:07 INFO mapreduce.Job: Job job_1398704073313_0021 failed with state FAILED due to ...

  6. hadoop错误org.apache.hadoop.util.DiskChecker$DiskErrorException Could not find any valid local directory for

    错误: org.apache.hadoop.util.DiskChecker$DiskErrorException: Could not find any valid local directory ...

  7. hadoop错误org.apache.hadoop.mapred.TaskAttemptListenerImpl Progress of TaskAttempt

    错误: org.apache.hadoop.mapred.TaskAttemptListenerImpl: Progress of TaskAttempt 原因: 错误很明显,磁盘空间不足,但郁闷的是 ...

  8. hadoop错误org.apache.hadoop.mapred.MapTask$NewOutputCollector@17bda0f2

    错误: org.apache.hadoop.mapred.MapTask$NewOutputCollector@17bda0f2 java.io.IOException: Spill failed 错 ...

  9. hadoop错误Operation category READ is not supported in state standby

    报如下错误 解决方法: 方法一:(结果不起作用) 通过Shell命令方式,hadoop/bin/hdfs haadmin -failover --forceactive hadoop2 hadoop1 ...

随机推荐

  1. json jackson

    1.引入依赖 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId&g ...

  2. 『TCP/IP详解——卷一:协议』读书笔记——06

    2013-08-20 14:41:01 2.8 最大传输单元MTU MTU,最大传输单元:以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节.这个不同网络对应的传输上限 ...

  3. mybatis异常

    一.Invalid bound statement 1.mapper.xml中namespaces错误(***) 2.方法不存在 3.方法返回值错误 二.Mapped Statements colle ...

  4. c# 后台调前台的js

    ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "", "<script type=\&q ...

  5. C#函数式编程之缓存技术

    缓存技术 该节我们将分成两部分来讲解,第一部分为预计算,第二部分则为缓存.缓存这个技术对应从事开发的人员来说是非常熟悉的,从页面缓存到数据库缓存无处不在,而其最重要的特点就是在第一次查询后将数据缓存, ...

  6. Asp.Net Web API 2第八课——Web API 2中的属性路由

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 路由就是Web API如何 ...

  7. 小觑数据库(SqlServer)查询语句执行过程

    近年来,越来越多的NoSql产品不断的以技术革命的者的身份跳出来:“你看哥是多么的快,你们关型型数据库真是战五渣阿”.是的,高性能的场景下NoSql真的很出彩.而我们关系型数据库只能在墙角哭泣&quo ...

  8. 解读SQL Server 2014可更新列存储索引——存储机制

    概述 SQL Server 2014被号称是微软数据库的一个革命性版本,其性能的提升的幅度是有史以来之最. 可更新的列存储索引作为SQL Server 2014的一个关键功能之一,在提升数据库的查询性 ...

  9. [matlab] 矩阵操作

    >_<:矩阵构造 1.简单矩阵构造 最简单的方法是采用矩阵构造符“[]”.构造1´n矩阵(行向量)时,可以将各元素依次放入矩阵构造符[]内,并且以空格或者逗号分隔:构造m´n矩阵时,每行如 ...

  10. 使用media Queries实现一个响应式的菜单

    Media queries是CSS3引入的一个特性,使用它可以方便的实现各种响应式效果.在这个示例中我们将会使用media queries实现一个响应式的菜单.这个菜单会根据当前浏览器屏幕的大小变化而 ...