windows8.1+eclipse+hadoop-2.7.2调试WordCount程序

在搭建完集群之后,尝试运行第一个hadoop程序WordCount,在程序运行的过程中,出现以下错误:
1.Failed to locate the winutils binary in the hadoop binary path  Java.io.IOException: Could not locate executablenull\bin\winutils.exe in the Hadoop binaries.

2. Exception in thread "main" Java.lang.UnsatisfiedLinkError: org.apache.Hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

3.Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirector

4.Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/yarn/util/Apps

         at java.lang.ClassLoader.defineClass1(Native Method)

         at java.lang.ClassLoader.defineClass(ClassLoader.java:800)

         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

         at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)

         at java.net.URLClassLoader.access$100(URLClassLoader.java:71)

         at java.net.URLClassLoader$1.run(URLClassLoader.java:361)

         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 org.apache.hadoop.mapred.LocalDistributedCacheManager.setup(LocalDistributedCacheManager.java:93)

         at org.apache.hadoop.mapred.LocalJobRunner$Job.<init>(LocalJobRunner.java:163)

         at org.apache.hadoop.mapred.LocalJobRunner.submitJob(LocalJobRunner.java:731)

         at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:536)

         at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1296)

         at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1293)

         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:1628)

         at org.apache.hadoop.mapreduce.Job.submit(Job.java:1293)

         at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1314)

         at WordCount.main(WordCount.java:70)

Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.yarn.util.Apps

         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)

         ... 24 more

错误1,2报错原因: 是windows的hadoop安装目录下,bin目录中缺少hadoop.dll和winutils.exe等动态库。
错误3报错原因:hadoop.dll的版本与hadoop版本不匹配
错误4报错原因:无法加载yarn的jar包

问题1,2,3的解决方案,如下:
  1.下载winutils的windows版本
  在CSDN上,有人提供了winutils的windows的版本,项目地址是: http://download.csdn.net/download/qq_16899785/9292533 直接下载此项目的zip包,下载后是文件名是hadoopbin.zip,然后解压之后把hadoop.dll文件放在system32和把解压出来的文件全部放在hadoop的bin下

  2.配置环境变量

  增加用户变量HADOOP_HOME,值是hadoop的安装路径,然后在系统变量path里增加$HADOOP_HOME\bin 即可。 


问题4的解决方案: 添加Yarn目录下的Jar包即可


总结:
1、凡是出现 classNotFound、NoClassDefFoundError之类的错误异常,多是jar包未导入引起的。根据相应提示找相应目录下的jar包即可。
2、出现异常,直接粘贴到网上找异常解决,网上相类似的太多,但不一定能准确定位找到解决方法。如果实在找不到相关的解决方案,仔细看下异常描述,尝试自己去思考去分析解决方法。
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值