Hi Jinwei, Oozie submits jobs by first running a 1-map job. The flow is hence: Oozie -> JobClient -> Launcher job (on cluster) -> Launcher mapper (on cluster) -> JobClient (from map task, on cluster) -> Actual user's code/job (on cluster). The real job is submitted from a job on the cluster - not from Oozie.
We do this to prevent running any form of user code to run into the Oozie runtime itself. For example, if a user's java action code had System.exit or other insecure code, we're exposing Oozie to crash as a result of having run that code. Hence we run the user code as a job on the cluster itself, wherein even if it fails, segfaults, etc., the Oozie server remains unaffected, with just the added cost of 1 extra map slot. The LauncherMapper's job itself has no user elements when launching. It uses its own I/F and O/F, creates a proper config object and invokes the user's class after that. On Mon, Jan 28, 2013 at 2:51 PM, jinwei zhu <[email protected]> wrote: > Hi, community, > I find that in the method submitLauncher of JavaActionExecutor.java > there is a call to JobClient , it seems to submit a job, but what is the > purpose of submitting the job? > > > Best regards! -- Harsh J
