Are you using the MultipleOutputs class shipped with Apache Hadoop or
one of your own?

If its the latter, please take a look at gotchas to take care of
described at 
http://wiki.apache.org/hadoop/FAQ#Can_I_write_create.2Fwrite-to_hdfs_files_directly_from_map.2Freduce_tasks.3F

On Mon, Dec 30, 2013 at 4:22 PM, AnilKumar B <akumarb2...@gmail.com> wrote:
> Hi,
>
> I am  using multiple outputs in our job. So whenever any reduce task fails,
> all it's next task attempts are failing with file exist exception.
>
>
> The output file name should also append the task attempt right? But it's
> only appending the task id. Is this the bug or Some thing wrong from my
> side?
>
> Where should look in src code? I went through  code at
> FileOutputFormat$getTaskOutputPath(), but there it's only considering task
> id.
>
>
> Exception Trace:
> 13/12/29 09:13:00 INFO mapred.JobClient: Task Id :
> attempt_201312162255_60465_r_000008_0, Status : FAILED
> 13/12/29 09:14:42 WARN mapred.JobClient: Error reading task
> outputhttp://localhost:50050/tasklog?plaintext=true&attemptid=attempt_201312162255_60465_r_000008_0&filter=stdout
> 13/12/29 09:14:42 WARN mapred.JobClient: Error reading task
> outputhttp://localhost:50050/tasklog?plaintext=true&attemptid=attempt_201312162255_60465_r_000008_0&filter=stderr
> 13/12/29 09:15:04 INFO mapred.JobClient:  map 100% reduce 93%
> 13/12/29 09:15:23 INFO mapred.JobClient:  map 100% reduce 96%
> 13/12/29 09:17:31 INFO mapred.JobClient:  map 100% reduce 97%
> 13/12/29 09:19:34 INFO mapred.JobClient: Task Id :
> attempt_201312162255_60465_r_000008_1, Status : FAILED
> org.apache.hadoop.ipc.RemoteException: java.io.IOException: failed to create
> /x/y/z/2013/12/29/04/o_2013_12_29_03-r-00008.gz on client 10.103.10.31
> either because the filename is invalid or the file exists
>                 at
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInternal(FSNamesystem.java:1672)
>                 at
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFile(FSNamesystem.java:1599)
>                 at
> org.apache.hadoop.hdfs.server.namenode.NameNode.create(NameNode.java:732)
>                 at
> org.apache.hadoop.hdfs.server.namenode.NameNode.create(NameNode.java:711)
>                 at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown
> Source)
>                 at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>                 at java.lang.reflect.Method.invoke(Method.java:597)
>                 at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:587)
>                 at
> org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1448)
>                 at
> org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1444)
>                 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:1232)
>                 at
> org.apache.hadoop.ipc.Server$Handler.run(Server.java:1442)
>
>                 at org.apache.hadoop.ipc.Client.call(Client.java:1118)
>                 at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:229)
>                 at $Proxy7.create(Unknown Source)
>                 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
>                 at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>                 at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>                 at java.lang.reflect.Method.invoke(Method.java:597)
>                 at
> org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:85)
>                 at
> org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:62)
>                 at $Proxy7.create(Unknown Source)
>                 at
> org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.<init>(DFSClient.java:3753)
>                 at
> org.apache.hadoop.hdfs.DFSClient.create(DFSClient.java:937)
>                 at
> org.apache.hadoop.hdfs.DistributedFileSystem.create(DistributedFileSystem.java:207)
>                 at
> org.apache.hadoop.fs.FileSystem.create(FileSystem.java:555)
>                 at
> org.apache.hadoop.fs.FileSystem.create(FileSystem.java:536)
>                 at
> org.apache.hadoop.fs.FileSystem.create(FileSystem.java:443)
>                 at
> org.apache.hadoop.mapreduce.lib.output.TextOutputFormat.getRecordWriter(TextOutputFormat.java:131)
>                 at
> org.apache.hadoop.mapreduce.lib.output.MultipleOutputs.getRecordWriter(MultipleOutputs.java:411)
>                 at
> org.apache.hadoop.mapreduce.lib.output.MultipleOutputs.write(MultipleOutputs.java:370)
>                 at
> com.team.hadoop.mapreduce1$Reducer1.reduce(MapReduce1.java:254)
>                 at
> com.team.hadoop.mapreduce1$Reducer1.reduce(MapReduce1.java::144)
>                 at org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:177)
>                 at
> org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:649)
>                 at
> org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:418)
>                 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:1232)
>                 at org.apache.hadoop.mapred.Child.main(Child.java:249)
>
> 13/12/29 09:19:35 WARN mapred.JobClient: Error reading task
> outputhttp://localhost:50050/tasklog?plaintext=true&attemptid=attempt_201312162255_60465_r_000008_1&filter=stdout
> 13/12/29 09:19:35 WARN mapred.JobClient: Error reading task
> outputhttp://localhost:50050/tasklog?plaintext=true&attemptid=attempt_201312162255_60465_r_000008_1&filter=stderr
> 13/12/29 09:19:36 INFO mapred.JobClient:  map 100% reduce 89%
> 13/12/29 09:19:54 INFO mapred.JobClient:  map 100% reduce 92%
> 13/12/29 09:20:11 INFO mapred.JobClient:  map 100% reduce 96%
> 13/12/29 09:22:52 INFO mapred.JobClient:  map 100% reduce 97%
> 13/12/29 09:23:48 INFO mapred.JobClient: Task Id :
> attempt_201312162255_60465_r_000008_2, Status : FAILED
> org.apache.hadoop.ipc.RemoteException: java.io.IOException: failed to create
> /x/y/z/2013/12/29/04/o_2013_12_29_03-r-00008.gz on client 10.103.7.33 either
> because the filename is invalid or the file exists
>                 at
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInternal(FSNamesystem.java:1672)
>                 at
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFile(FSNamesystem.java:1599)
>                 at
> org.apache.hadoop.hdfs.server.namenode.NameNode.create(NameNode.java:732)
>                 at
> org.apache.hadoop.hdfs.server.namenode.NameNode.create(NameNode.java:711)
>                 at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown
> Source)
>                 at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>                 at java.lang.reflect.Method.invoke(Method.java:597)
>                 at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:587)
>                 at
> org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1448)
>
>
> Thanks & Regards,
> B Anil Kumar.



-- 
Harsh J

Reply via email to