public void logSubmitted ( String jobConfPath , long submitTime , String jobTrackerId ) throws IOException { if ( disableHistory ) { return ; } // create output stream for logging in hadoop.job.history.location int defaultBufferSize = logDirFs . getConf ( ) . getInt ( "io.file.buffer.size" , 4096 ) ; try { FSDataOutputStream out = null ; PrintWriter writer = null ; // In case the old JT is still running, but we can't connect to it, we // should ensure that it won't write to our (new JT's) job history file. if ( logDirFs . exists ( logFile ) ) { LOG . info ( "Remove the old history file " + logFile ) ; logDirFs . delete ( logFile , true ) ; } out = logDirFs . create ( logFile , new FsPermission ( HISTORY_FILE_PERMISSION ) , true , defaultBufferSize , logDirFs . getDefaultReplication ( ) , jobHistoryBlockSize , null ) ; writer = new PrintWriter ( out ) ; fileManager . addWriter ( jobId , writer ) ; // cache it ... fileManager . setHistoryFile ( jobId , logFile ) ; writers = fileManager . getWriters ( jobId ) ; if ( null != writers ) { log ( writers , RecordTypes . Meta , new Keys [ ] { Keys . VERSION } , new String [ ] { String . valueOf ( JobHistory . VERSION ) } ) ; } String jobName = getJobName ( ) ; String user = getUserName ( ) ; //add to writer as well log ( writers , RecordTypes . Job , new Keys [ ] { Keys . JOBID , Keys . JOBNAME , Keys . USER , Keys . SUBMIT_TIME , Keys . JOBCONF , Keys . JOBTRACKERID } , new String [ ] { jobId . toString ( ) , jobName , user , String . valueOf ( submitTime ) , jobConfPath , jobTrackerId } ) ; } catch ( IOException e ) { // Disable history if we have errors other than in the user log. disableHistory = true ; } /* Storing the job conf on the log dir */ Path jobFilePath = new Path ( logDir , CoronaJobHistoryFilesManager . getConfFilename ( jobId ) ) ; fileManager . setConfFile ( jobId , jobFilePath ) ; FSDataOutputStream jobFileOut = null ; try { if ( ! logDirFs . exists ( jobFilePath ) ) { jobFileOut = logDirFs . create ( jobFilePath , new FsPermission ( HISTORY_FILE_PERMISSION ) , true , defaultBufferSize , logDirFs . getDefaultReplication ( ) , logDirFs . getDefaultBlockSize ( ) , null ) ; conf . writeXml ( jobFileOut ) ; jobFileOut . close ( ) ; } } catch ( IOException ioe ) { LOG . error ( "Failed to store job conf in the log dir" , ioe ) ; } finally { if ( jobFileOut != null ) { try { jobFileOut . close ( ) ; } catch ( IOException ie ) { LOG . info ( "Failed to close the job configuration file " + StringUtils . stringifyException ( ie ) ) ; } } } }
Log job submitted event to history . Creates a new file in history for the job . if history file creation fails it disables history for all other events .