您的位置:首页 > 编程语言 > Java开发

hadoop2.2.0配置eclipse运行wordcount程序问题及解决方法

2014-06-11 22:47 796 查看
问题1:空指针异常

log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Exception in thread "main" java.lang.NullPointerException

at java.lang.ProcessBuilder.start(ProcessBuilder.java:441)

at org.apache.hadoop.util.Shell.runCommand(Shell.java:404)

at org.apache.hadoop.util.Shell.run(Shell.java:379)

at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:589)

at org.apache.hadoop.util.Shell.execCommand(Shell.java:678)

at org.apache.hadoop.util.Shell.execCommand(Shell.java:661)

at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:639)

at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:435)

at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:277)

at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:125)

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

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

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

at java.security.AccessController.doPrivileged(Native Method)

at javax.security.auth.Subject.doAs(Subject.java:396)

at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)

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

at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:562)

at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:557)

at java.security.AccessController.doPrivileged(Native Method)

at javax.security.auth.Subject.doAs(Subject.java:396)

at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)

at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:557)

at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:548)

at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:833)

at test.WordCount.run(WordCount.java:150)

at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)

at test.WordCount.main(WordCount.java:155)

解决方法:

https://github.com/srccodes/hadoop-common-2.2.0-bin上下载bin包,然后将bin目录下的winutils.exe放在hadoop/bin目录下或者将hadoop/bin目录文件全部替换为bin包,并且配置hadoop环境变量HADOOP_HOME="*****",在path中配置%HADOOP_HOME%\bin

问题2:文件IO异常

将第一步问题解决后继续运行程序,会出现如下问题:

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

原因:缺少hadoop.dll文件

解决方案:

将bin包下的hadoop文件放在C:\Windows\System32目录下。

即可解决上面问题!!!Happy一把!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐