读书人

读hadoop0.23源码(一):Job

发布时间: 2012-12-23 11:28:15 作者: rapoo

读hadoop0.23源码(1):Job

每次配置job的时候,最后一步总是

?

System.exit(job.waitForCompletion(true) ? 0 : 1);

?进入waitForCompletion方法

?

public boolean waitForCompletion(boolean verbose                                   ) throws IOException, InterruptedException,                                            ClassNotFoundException {    if (state == JobState.DEFINE) {      submit();    }    if (verbose) {      jobClient.monitorAndPrintJob(conf, info);//设置参数是否打印执行过程    } else {      info.waitForCompletion();    }    return isSuccessful();  }

?

submit()方法是根据你设置的job属性来执行job,以下是submit()方法:

?

public void submit() throws IOException, InterruptedException,                               ClassNotFoundException {    ensureState(JobState.DEFINE);//确认job开始执行    setUseNewAPI();        // 连接到jobTrack并且提交job    connect();    info = jobClient.submitJobInternal(conf);    super.setJobID(info.getID());    state = JobState.RUNNING;   }

?

在connect()方法中实例化了jobClient,然后调用jobClient.submitJobInternal 提交job

读书人网 >编程

热点推荐