org.apache.hadoop.hive.ql.exec
Class MuxOperator

java.lang.Object
  extended by org.apache.hadoop.hive.ql.exec.Operator<MuxDesc>
      extended by org.apache.hadoop.hive.ql.exec.MuxOperator
All Implemented Interfaces:
Serializable, Cloneable, Node

public class MuxOperator
extends Operator<MuxDesc>
implements Serializable

MuxOperator is used in the Reduce side of MapReduce jobs optimized by Correlation Optimizer. Correlation Optimizer will remove unnecessary ReduceSinkOperaotrs, and MuxOperators are used to replace those ReduceSinkOperaotrs. Example: The original operator tree is ... JOIN2 / \ RS4 RS5 / \ GBY1 JOIN1 | / \ RS1 RS2 RS3 If GBY1, JOIN1, and JOIN2 can be executed in the same reducer (optimized by Correlation Optimizer). The new operator tree will be ... JOIN2 | MUX / \ GBY1 JOIN1 \ / DEMUX / | \ / | \ / | \ RS1 RS2 RS3 A MuxOperator has two functions. First, it will construct key, value and tag structure for the input of Join Operators. Second, it is a part of operator coordination mechanism which makes sure the operator tree in the Reducer can work correctly.

See Also:
Serialized Form

Nested Class Summary
protected static class MuxOperator.Handler
          Handler is used to construct the key-value structure.
 
Nested classes/interfaces inherited from class org.apache.hadoop.hive.ql.exec.Operator
Operator.OperatorFunc, Operator.ProgressCounter, Operator.State
 
Field Summary
protected static org.apache.commons.logging.Log LOG
           
 
Fields inherited from class org.apache.hadoop.hive.ql.exec.Operator
alias, beginTime, childOperators, childOperatorsArray, childOperatorsTag, colExprMap, conf, counterNames, counterNameToEnum, counters, done, fatalErrorCntr, groupKeyObject, id, inputObjInspectors, inputRows, isLogInfoEnabled, numInputRowsCntr, numOutputRowsCntr, operatorId, out, outputObjInspector, outputRows, parentOperators, reporter, state, statsMap, timeTakenCntr, totalTime
 
Constructor Summary
MuxOperator()
           
 
Method Summary
protected  void closeOp(boolean abort)
          Operator specific close routine.
 void endGroup()
           
 void forward(Object row, ObjectInspector rowInspector)
           
 String getName()
          Implements the getName function for the Node Interface.
static String getOperatorName()
           
 OperatorType getType()
          Return the type of the specific operator among the types in OperatorType.
protected  void initializeChildren(Configuration hconf)
          Calls initialize on each of the children with outputObjetInspector as the output row format.
protected  void initializeOp(Configuration hconf)
          Operator specific initialization.
 void processGroup(int tag)
           
 void processOp(Object row, int tag)
          Process the row.
 void startGroup()
           
 
Methods inherited from class org.apache.hadoop.hive.ql.exec.Operator
acceptLimitPushdown, allInitializedParentsAreClosed, areAllParentsInitialized, assignCounterNameToEnum, augmentPlan, checkFatalErrors, cleanUpInputFileChanged, cleanUpInputFileChangedOp, clone, close, columnNamesRowResolvedCanBeObtained, dump, dump, fatalErrorMessage, flush, getAdditionalCounters, getChildOperators, getChildren, getColumnExprMap, getConf, getConfiguration, getCounterNames, getCounterNameToEnum, getCounters, getDone, getExecContext, getGroupKeyObject, getIdentifier, getInputObjInspectors, getNextCntr, getNumChild, getNumParent, getOperatorId, getParentOperators, getSchema, getStats, getWrappedCounterName, incrCounter, initEvaluators, initEvaluators, initEvaluatorsAndReturnStruct, initialize, initialize, initializeCounters, initializeLocalWork, initOperatorId, isUseBucketizedHiveInputFormat, jobClose, jobCloseOp, logStats, opAllowedAfterMapJoin, opAllowedBeforeMapJoin, opAllowedBeforeSortMergeJoin, opAllowedConvertMapJoin, passExecContext, preorderMap, process, removeChild, removeChildAndAdoptItsChildren, removeChildren, removeParent, replaceChild, replaceParent, reset, resetId, resetLastEnumUsed, resetStats, setAlias, setChildOperators, setColumnExprMap, setConf, setCounterNames, setCounterNameToEnum, setDone, setExecContext, setGroupKeyObject, setId, setInputObjInspectors, setOperatorId, setOutputCollector, setParentOperators, setReporter, setSchema, setUseBucketizedHiveInputFormat, supportAutomaticSortMergeJoin, supportSkewJoinOptimization, supportUnionRemoveOptimization, toString, toString, updateCounters
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

LOG

protected static final org.apache.commons.logging.Log LOG
Constructor Detail

MuxOperator

public MuxOperator()
Method Detail

initializeOp

protected void initializeOp(Configuration hconf)
                     throws HiveException
Description copied from class: Operator
Operator specific initialization.

Overrides:
initializeOp in class Operator<MuxDesc>
Throws:
HiveException

initializeChildren

protected void initializeChildren(Configuration hconf)
                           throws HiveException
Calls initialize on each of the children with outputObjetInspector as the output row format.

Overrides:
initializeChildren in class Operator<MuxDesc>
Throws:
HiveException

processOp

public void processOp(Object row,
                      int tag)
               throws HiveException
Description copied from class: Operator
Process the row.

Specified by:
processOp in class Operator<MuxDesc>
Parameters:
row - The object representing the row.
tag - The tag of the row usually means which parent this row comes from. Rows with the same tag should have exactly the same rowInspector all the time.
Throws:
HiveException

forward

public void forward(Object row,
                    ObjectInspector rowInspector)
             throws HiveException
Overrides:
forward in class Operator<MuxDesc>
Throws:
HiveException

startGroup

public void startGroup()
                throws HiveException
Overrides:
startGroup in class Operator<MuxDesc>
Throws:
HiveException

endGroup

public void endGroup()
              throws HiveException
Overrides:
endGroup in class Operator<MuxDesc>
Throws:
HiveException

processGroup

public void processGroup(int tag)
                  throws HiveException
Overrides:
processGroup in class Operator<MuxDesc>
Throws:
HiveException

closeOp

protected void closeOp(boolean abort)
                throws HiveException
Description copied from class: Operator
Operator specific close routine. Operators which inherents this class should overwrite this funtion for their specific cleanup routine.

Overrides:
closeOp in class Operator<MuxDesc>
Throws:
HiveException

getName

public String getName()
Description copied from class: Operator
Implements the getName function for the Node Interface.

Specified by:
getName in interface Node
Overrides:
getName in class Operator<MuxDesc>
Returns:
the name of the operator

getOperatorName

public static String getOperatorName()

getType

public OperatorType getType()
Description copied from class: Operator
Return the type of the specific operator among the types in OperatorType.

Specified by:
getType in class Operator<MuxDesc>
Returns:
OperatorType.*


Copyright © 2012 The Apache Software Foundation