public static class ReduceSinkMapJoin implements NodeProcessor {
@Override
public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx procCtx,
Object... nodeOutputs) throws SemanticException {
MapJoinOperator mapJoin = (MapJoinOperator)nd;
GenMRProcContext opProcCtx = (GenMRProcContext)procCtx;
mapredWork cplan = GenMapRedUtils.getMapRedWork();
ParseContext parseCtx = opProcCtx.getParseCtx();
Task<? extends Serializable> redTask = TaskFactory.get(cplan, parseCtx.getConf());
Task<? extends Serializable> currTask = opProcCtx.getCurrTask();
// find the branch on which this processor was invoked
int pos = getPositionParent(mapJoin, stack);
boolean local = (pos == ((mapJoinDesc)mapJoin.getConf()).getPosBigTable()) ? false : true;
GenMapRedUtils.splitTasks(mapJoin, currTask, redTask, opProcCtx, false, local, pos);
currTask = opProcCtx.getCurrTask();
HashMap<Operator<? extends Serializable>, Task<? extends Serializable>> opTaskMap = opProcCtx.getOpTaskMap();