001/** 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the 007 * "License"); you may not use this file except in compliance 008 * with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018 019package org.apache.hadoop.mapred.lib.aggregate; 020 021import org.apache.hadoop.classification.InterfaceAudience; 022import org.apache.hadoop.classification.InterfaceStability; 023import org.apache.hadoop.io.Text; 024import org.apache.hadoop.mapred.JobConf; 025 026/** 027 * This interface defines the contract a value aggregator descriptor must 028 * support. Such a descriptor can be configured with a JobConf object. Its main 029 * function is to generate a list of aggregation-id/value pairs. An aggregation 030 * id encodes an aggregation type which is used to guide the way to aggregate 031 * the value in the reduce/combiner phrase of an Aggregate based job.The mapper in 032 * an Aggregate based map/reduce job may create one or more of 033 * ValueAggregatorDescriptor objects at configuration time. For each input 034 * key/value pair, the mapper will use those objects to create aggregation 035 * id/value pairs. 036 */ 037@InterfaceAudience.Public 038@InterfaceStability.Stable 039public interface ValueAggregatorDescriptor extends 040 org.apache.hadoop.mapreduce.lib.aggregate.ValueAggregatorDescriptor { 041 042 public static final String TYPE_SEPARATOR = org.apache.hadoop.mapreduce. 043 lib.aggregate.ValueAggregatorDescriptor.TYPE_SEPARATOR; 044 045 public static final Text ONE = org.apache.hadoop.mapreduce. 046 lib.aggregate.ValueAggregatorDescriptor.ONE; 047 048 /** 049 * Configure the object 050 * 051 * @param job 052 * a JobConf object that may contain the information that can be used 053 * to configure the object. 054 */ 055 public void configure(JobConf job); 056}