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

Reply via email to