将jar包上传到Hadoop服务器并执行jar包的方法--参数不对应导致报错output directory already exists

来源:互联网 发布:ubuntu版飞秋 编辑:程序博客网 时间:2024/04/28 08:56
 ERROR security.UserGroupInformation: PriviledgedActionException as:root cause:org.apache.hadoop.mapred.FileAlreadyExistsException:Output directory hdfs://。。。。/user/root/input already exists
是由于参数不对应引起的,即,讲input文件夹对应到output参数上了。正确的执行jar包的方法为:

1.通过crt把自己的打包好的工程上传到hadoop服务器上。
2.首先确认中间输出结果路径是不存在的,执行删除方法:
  bin/hadoop fs -rmr output
3.创建输入路径input,并上传输入文件至该文件夹。
4.执行指令运行jar包wordcount.jar:
  bin/hadoop jar wordcount.jar input output
这里要注意参数个数,如果在打包时就已经指定了执行main方法的类,比如WordCount类,那么在执行上述指令时就不要在指定类了,如果写:
bin/hadoop jar wordcount.jar WordCount input output
那么就需要在工程里面修改对应参数:
FileInputFormat.setInputPaths(conf,new Path(args[0]));0改为1
FileOutputFormat.setOutputPath(conf,new Path(args[1]));1改为2
最好的方法就是不再加上WordCount这个参数。
0 0