我正在运行 MapReduce 作业。我的代码仅包含一个执行简单计算的类。在hadoop1.0.3的单节点设置上成功运行 当我在 EMR 上运行它时,出现以下错误
java.io.IOException: File already exists: s3n://<bucketname>/output/part-r-00002
at org.apache.hadoop.fs.s3native.NativeS3FileSystem.create(NativeS3FileSystem.java:647)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:557)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:538)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:445)
at org.apache.hadoop.mapreduce.lib.output.TextOutputFormat.getRecordWriter(TextOutputFormat.java:128)
at org.apache.hadoop.mapred.ReduceTask$NewTrackingRecordWriter.<init>(ReduceTask.java:583)
at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:652)
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:426)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
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:1132)
at org.apache.hadoop.mapred.Child.main(Child.java:249)
最佳答案
您需要将作业配置为每次运行时将结果写入不同的输出目录。
它现在正在提示,因为该位置已存在一个文件,很可能是因为您多次运行此作业。
关于java - Amazon EMR : java. io.IOException:文件已存在:s3n://<bucketname>/output/part-r-00002,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16369794/