hadoop 执行jar包:InvalidInputException: Input path does not exist:

标签:
hadoopjarinvalidinputexceptio |
分类: 技术探讨 |
今天 在网上找了个java编写 hadoop的mapreduce项目的demo,并用导出jar
在hadoop环境中执行,但是报错:Exception in thread "main"
org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input
path does not exist: hdfs://master:9000/user/root/input
说是/user/root/input这个文件夹找不到,弄了好久也在我的linux根目录下创建了/user/root/input目录,但是还是报路径不存在,后来才恍然大悟,原来,我只是在linux上创建了这个目录,但是hadoop自己的hdfs文件系统里面,是没有这个目录的,所以赶紧在hdfs系统里面建了/user/root/input和/user/root/output目录,再执行hadoop的命令:
bin/hadoop jar test1.jar com.rrkd.test.FirstDemo /usr/soft/input/ /usr/soft/output/
(ps:该命令是在hadoop的安装根目录下才能执行),但这时,又报:
Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output
directory hdfs://master:9000/user/root/output already exists
原来hadoop在执行时,发现在hdfs中已经有了这个output文件夹,所以又抛出这个异常,此处很无语,个人觉得完全可以如果发现文件夹存在时,直接覆盖就行。所以用命令:
bin/hadoop -rmr /user/root/output 删除,命令是执行成功了,也删除了output文件夹,但命令行提示:rmr: DEPRECATED: Please use 'rm -r' instead.
表示推荐使用 rm -r 参数的方式执行删除文件夹的命令,而不是使用-rmr的方式。
然后再执行上边的命令:
bin/hadoop jar test1.jar com.rrkd.test.FirstDemo /usr/soft/input/ /usr/soft/output/
然后就看到这样的提示:
http://s7/mw690/001N5ZvCzy73BIJSzTE66&690执行jar包:InvalidInputException:Input path does not exist:" TITLE="hadoop 执行jar包:InvalidInputException: Input path does not exist:" />
表示hadoop已经成功执行了我提交 的jar包,真不容易,终于算是把hadoop从环境到编写一个简单的dmeo给搞定了。
ps:参照的Java项目代码在:
http://www.aboutyun.com/thread-7046-1-1.html
但是改了下面两句代码:
conf.set("mapred.job.tracker", "192.168.1.2:9001");
----->这句直接删除了
String[] ioArgs=new String[]{"sort_in","sort_out"};
------>这句改成了我的input,output(对应的就是刚刚报错的那两个目录文件夹)
说是/user/root/input这个文件夹找不到,弄了好久也在我的linux根目录下创建了/user/root/input目录,但是还是报路径不存在,后来才恍然大悟,原来,我只是在linux上创建了这个目录,但是hadoop自己的hdfs文件系统里面,是没有这个目录的,所以赶紧在hdfs系统里面建了/user/root/input和/user/root/output目录,再执行hadoop的命令:
bin/hadoop jar test1.jar com.rrkd.test.FirstDemo /usr/soft/input/ /usr/soft/output/
Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsExcepti
原来hadoop在执行时,发现在hdfs中已经有了这个output文件夹,所以又抛出这个异常,此处很无语,个人觉得完全可以如果发现文件夹存在时,直接覆盖就行。所以用命令:
bin/hadoop -rmr /user/root/output 删除,命令是执行成功了,也删除了output文件夹,但命令行提示:rmr: DEPRECATED: Please use 'rm -r' instead.
表示推荐使用 rm -r 参数的方式执行删除文件夹的命令,而不是使用-rmr的方式。
然后再执行上边的命令:
bin/hadoop jar test1.jar com.rrkd.test.FirstDemo /usr/soft/input/ /usr/soft/output/
然后就看到这样的提示:
http://s7/mw690/001N5ZvCzy73BIJSzTE66&690执行jar包:InvalidInputException:
表示hadoop已经成功执行了我提交 的jar包,真不容易,终于算是把hadoop从环境到编写一个简单的dmeo给搞定了。
ps:参照的Java项目代码在:
http://www.aboutyun.com/thread-7046-1-1.html
但是改了下面两句代码:
conf.set("mapred.job.tracker", "192.168.1.2:9001");
String[] ioArgs=new String[]{"sort_in","sort_out"};