定义
作业上下文是指计算机中作业被处理器调度执行时作业的有关信息,实际上也是作业执行活动全过程的静态描述,作业是一个比程序更为的概念,它通常由程序、数据和作业说明书组成,在批处理系统中,是以作业为基本单位从外存调入内存的。1作业上下文一般包括程序,数据,作业说明书及作业执行过程中的一些信息。
意义在计算机,CPU资源是很宝贵的,有很多作业需要处理,所以计算机不可能一直都在处理一个作业,为了能处理更多的作业,需要对作业进行调度,作业调度的主要功能根据作业控制块中的信息审查系统是否满足用户作业的需求,以及按照一定的算法,从外存的后备队列中选取一些符合要求的作业调入内存。1作业上下文保存了作业执行的信息,当一个作业没有完成时,使作业下次再被调度运行时不必从头开始,可以从上次执行的地方继续执行,提高系统资源的利用率。
编程实现接口 /** * 作业上下文. * * * JobContext 接口主要定义一些配置参数的获取接口,这些配置参数都是通过 {@link JobConf} 设置的 *
*/public interface JobContext { /** * 获取作业配置. * * 在 {@link JobConf} 设置的配置参数可以从作业配置中读取 * * * 注意:这里只能get配置参数,而不能set配置参数 *
* * @return 作业配置 */ public JobConf getJobConf(); /** * 获取实际运行的{@link Reducer}数, 对于Map-only的作业,Reduce个数为0. * * 如果通过{@link JobConf#setNumReduceTasks(int)}设定过{@link Reducer}数,则返回值与其相同; * 否则,为Map Task数的1/4. * 对于pipeline模式的job,返回下一级节点的reducer数目,如果为最后一个reduce节点,则返回该节点的数目, * 如果只有map节点,则返回0 * * @return 实际的{@link Reducer} 数. * @see JobConf#getNumReduceTasks() */ public int getNumReduceTasks(); /** * 获取Map输出到Reduce的Key类型 * * @return Map输出到Reduce的Key类型 * @see JobConf#setMapOutputKeySchema(Column[]) */ public Column[] getMapOutputKeySchema(); /** * 获取Map输出到Reduce的Value类型 * * @return Map输出到Reduce的Value类型 * @see JobConf#setMapOutputValueSchema(Column[]) */ public Column[] getMapOutputValueSchema(); /** * 获取 {@link Mapper} Java类 * * @return {@link Mapper} Java类 * @throws ClassNotFoundException * @see JobConf#setMapperClass(Class) */ public Class