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
 
Nested classes/interfaces inherited from class org.apache.hadoop.hive.ql.exec.Operator
Operator.OperatorFunc, Operator.State
 
Field Summary
 
Fields inherited from class org.apache.hadoop.hive.ql.exec.Operator
HIVECOUNTERCREATEDFILES, HIVECOUNTERFATAL
 
Constructor Summary
MuxOperator()
           
 
Method Summary
 void endGroup()
           
 void forward(Object row, ObjectInspector rowInspector)
           
 String getName()
          Implements the getName function for the Node Interface.
static String getOperatorName()
           
 org.apache.hadoop.hive.ql.plan.api.OperatorType getType()
          Return the type of the specific operator among the types in OperatorType.
 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, augmentPlan, cleanUpInputFileChanged, cleanUpInputFileChangedOp, clone, cloneOp, cloneRecursiveChildren, close, columnNamesRowResolvedCanBeObtained, dump, dump, flush, getChildOperators, getChildren, getColumnExprMap, getConf, getConfiguration, getDone, getExecContext, getGroupKeyObject, getGroupKeyObjectInspector, getIdentifier, getInputObjInspectors, getNumChild, getNumParent, getOperatorId, getOpTraits, getOutputObjInspector, getParentOperators, getSchema, getStatistics, getStats, initialize, initializeLocalWork, initOperatorId, isUseBucketizedHiveInputFormat, jobClose, jobCloseOp, logStats, opAllowedAfterMapJoin, opAllowedBeforeMapJoin, opAllowedBeforeSortMergeJoin, opAllowedConvertMapJoin, passExecContext, preorderMap, removeChild, removeChildAndAdoptItsChildren, removeChildren, removeParent, replaceChild, replaceParent, reset, resetId, resetStats, setAlias, setChildOperators, setColumnExprMap, setConf, setExecContext, setGroupKeyObject, setGroupKeyObjectInspector, setId, setInputObjInspectors, setOperatorId, setOpTraits, setOutputCollector, setParentOperators, setReporter, setSchema, setStatistics, setUseBucketizedHiveInputFormat, supportAutomaticSortMergeJoin, supportSkewJoinOptimization, supportUnionRemoveOptimization, toString, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MuxOperator

public MuxOperator()
Method Detail

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
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

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 org.apache.hadoop.hive.ql.plan.api.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 © 2014 The Apache Software Foundation. All rights reserved.