【发布时间】:2013-05-25 04:07:59
【问题描述】:
我正在分析日志文件的数据管道内运行 EMR 活动,当我的管道失败时出现以下错误:
线程“主”org.apache.hadoop.mapred.FileAlreadyExistsException 中的异常:输出目录 hdfs://10.211.146.177:9000/home/hadoop/temp-output-s3copy-2013-05-24-00 已经存在 在 org.apache.hadoop.mapred.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:121) 在 org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:944) 在 org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:905) 在 java.security.AccessController.doPrivileged(本机方法) 在 javax.security.auth.Subject.doAs(Subject.java:396) 在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1132) 在 org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:905) 在 org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:879) 在 org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1316) 在 com.valtira.datapipeline.stream.CloudFrontStreamLogProcessors.main(CloudFrontStreamLogProcessors.java:216) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.apache.hadoop.util.RunJar.main(RunJar.java:187)
我尝试通过添加删除该文件夹:
文件系统 fs = FileSystem.get(getConf()); fs.delete(new Path("path/to/file"), true); // 删除文件,递归为真
但它不起作用。有没有办法在 java 中覆盖来自 Hadoop 的 FileOutputFormat 方法?有没有办法在java中忽略这个错误?
【问题讨论】:
-
是的,但这不起作用。关于如何忽略错误的任何想法?
标签: hadoop amazon-web-services emr