Hi,

I was new to hadoop. Sorry for my novice question.
I got some problem while I was trying to use task side-effect files.
Since there is no code example in wiki, I tried this way:

I override cofigure method in reducer to create a side file,

         public void configure(JobConf conf){
         logger.info("Tring to create sideFiles inside reducer.!");

         Path workpath=conf.getOutputPath();
         Path sideFile= new Path(workpath,"SideFile.txt");
         try {
                   FileSystem fs = FileSystem.get(conf);
                   out= fs.create(sideFile);
         } catch (IOException e) {
                   logger.error("Failed to create sidefile!");
         }        
         }
And try to use it in reducer.

But I got some strange problems,
Even If the method is in reducer Class, mapper tasks are creating the
side files.
Mapper tasks hang because there are tring to recreate the file.

org.apache.hadoop.dfs.AlreadyBeingCreatedException:
 failed to create file
/data/input/MID06/_temporary/_task_200804112315_0001_m_000008_0/SideFile
.txt for DFSClient_task_200804112315_0001_m_000008_0 on client
192.168.0.203 because current leaseholder is trying to recreate file.
         at
org.apache.hadoop.dfs.FSNamesystem.startFileInternal(FSNamesystem.java:9
74)
         at
org.apache.hadoop.dfs.FSNamesystem.startFile(FSNamesystem.java:931)
         at org.apache.hadoop.dfs.NameNode.create(NameNode.java:281)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
         at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:409)
         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:899)


Can anybody help me on this, how to use side-effect files? 



Best Regards

Jian Zhang

Reply via email to