code: @Override
  	public void prepare() throws Exception {
  		final TaskConfig config = this.taskContext.getTaskConfig();
  		this.strategy = config.getDriverStrategy();
  		
  		if (strategy == DriverStrategy.ALL_GROUP_COMBINE) {
  			if (!(this.taskContext.getStub() instanceof GenericCombine)) {
  				throw new Exception("Using combiner on a UDF that does not implement the combiner interface " + GenericCombine.class.getName());
  			}
  		}
  		else if (strategy != DriverStrategy.ALL_GROUP_REDUCE) {
  			throw new Exception("Unrecognized driver strategy for AllGroupReduce driver: " + config.getDriverStrategy().name());
  		}
  		this.serializer = this.taskContext.<IT>getInputSerializer(0).getSerializer();
  		this.input = this.taskContext.getInput(0);
  	}
docs: --------------------------------------------------------------------------------------------