org.apache.hadoop.hive.ql.exec
Class MuxOperator
java.lang.Object
org.apache.hadoop.hive.ql.exec.Operator<MuxDesc>
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
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 |
MuxOperator
public MuxOperator()
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.