您的位置:首页 > 运维架构

hadoop 2.7.1 配置后使用异常

2015-11-01 21:05 459 查看
hadoop 2.7.1 配置好后执行命令:

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount input output
出现如下问题:

15/11/01 20:42:29 INFO Configuration.deprecation: session.id is deprecated. Instead, use dfs.metrics.session-id

15/11/01 20:42:29 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=

15/11/01 20:42:29 INFO mapreduce.JobSubmitter: Cleaning up the staging area file:/opt/tmp/hadoop/mapred/staging/root557650370/.staging/job_local557650370_0001

org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs://127.0.0.1:9000/user/root/input

at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:323)

at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus(FileInputFormat.java:265)

at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(FileInputFormat.java:387)

at org.apache.hadoop.mapreduce.JobSubmitter.writeNewSplits(JobSubmitter.java:301)

at org.apache.hadoop.mapreduce.JobSubmitter.writeSplits(JobSubmitter.java:318)

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

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

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

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

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

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

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

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

at org.apache.hadoop.examples.WordCount.main(WordCount.java:87)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:483)

at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:71)

at org.apache.hadoop.util.ProgramDriver.run(ProgramDriver.java:144)

at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:74)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:483)

at org.apache.hadoop.util.RunJar.run(RunJar.java:221)

at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

解决方法

从提示可以看出是说Input path does not exist: hdfs://127.0.0.1:9000/user/root/input

/user/root/input路径不存在。值得说明是这个路径是hadoop文件系统的目录,我们可以通过hadoop下HDFS下的shell进行操作(和操作linux系统只不过前面加hadoop fs -)

比如:hadoop fs -ls / #可以查看hadoop文件系统根目录下有哪些文件这里的反斜杠表示hdfs的根节点目录类似linux的/

hadoop fs -mkdir -p /user/root/ #在hadoop文件系统下建立多级目录

然后将本地的input目录上传到HDFS上: hadoop fs -put input /user/root/

使用hadoop fs -get /user/root/output # 将hadoop文件系统上的文件取回本地

其他相关操作命令参考:http://blog.csdn.net/qduningning/article/details/24122165



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: