hdfs://192.168.1.110:9000/user/hadoop/input hdfs://192.168.1.110:9000/user/hadoop/output
但是运行之后报了这个错误:
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(Unknown Source)
at org.apache.hadoop.util.Shell.runCommand(Shell.java:445)
at org.apache.hadoop.util.Shell.run(Shell.java:418)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:722)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:633)
at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:421)
at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:281)
at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:125)
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:348)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1285)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1282)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Unknown Source)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1556)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:1282)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1303)
at com.test.WordCount.main(WordCount.java:68)
程序应该没有问题,直接copy的,望大神指教。
4 个解决方案
#1
1,错误提示在at com.test.WordCount.main(WordCount.java:68)68行,到68行去看看发生了什么,一般空指针都是因为没有赋值。
2,指令是否正确。运行WordCount的命令类似于
2,指令是否正确。运行WordCount的命令类似于
hadoop jar hadoop-example-*.jar wordcount input output,如果你运行的是Hadoop自带的example包的话就是这样,应该没有问题,如果是自己编译导出包的,理论上也是同理
#2
@minglaihan
我是在eclipse下面运行的,现在换到master主机上安装了eclipse,下面的错误是没有了,但是日志文件输出不了,就是前面三个warn还是有的,结果能出来,求助啊
我是在eclipse下面运行的,现在换到master主机上安装了eclipse,下面的错误是没有了,但是日志文件输出不了,就是前面三个warn还是有的,结果能出来,求助啊
#3
如果想真的利用hadoop集群的特性,还是要打包运行的,因为Eclipse根本没法做到充分利用hadoop,你说的日志文件是指的hadoop系统目录下面的logs里面没有吗?因为你在Eclipse下运行,hadoop系统没有执行,所以肯定不会有log,建议你打成jar包之后,用hadoop jar *.jar input output这种方式来运行,打包就是export jar包,没问题吧
#4
eclipse用于调试,日志文件是不没在hadoop集群上
#1
1,错误提示在at com.test.WordCount.main(WordCount.java:68)68行,到68行去看看发生了什么,一般空指针都是因为没有赋值。
2,指令是否正确。运行WordCount的命令类似于
2,指令是否正确。运行WordCount的命令类似于
hadoop jar hadoop-example-*.jar wordcount input output,如果你运行的是Hadoop自带的example包的话就是这样,应该没有问题,如果是自己编译导出包的,理论上也是同理
#2
@minglaihan
我是在eclipse下面运行的,现在换到master主机上安装了eclipse,下面的错误是没有了,但是日志文件输出不了,就是前面三个warn还是有的,结果能出来,求助啊
我是在eclipse下面运行的,现在换到master主机上安装了eclipse,下面的错误是没有了,但是日志文件输出不了,就是前面三个warn还是有的,结果能出来,求助啊
#3
如果想真的利用hadoop集群的特性,还是要打包运行的,因为Eclipse根本没法做到充分利用hadoop,你说的日志文件是指的hadoop系统目录下面的logs里面没有吗?因为你在Eclipse下运行,hadoop系统没有执行,所以肯定不会有log,建议你打成jar包之后,用hadoop jar *.jar input output这种方式来运行,打包就是export jar包,没问题吧
#4
eclipse用于调试,日志文件是不没在hadoop集群上