|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object ptolemy.kernel.util.NamedObj ptolemy.kernel.InstantiableNamedObj ptolemy.kernel.Entity ptolemy.kernel.ComponentEntity ptolemy.actor.AtomicActor ptolemy.actor.TypedAtomicActor ptolemy.actor.ptalon.lib.ReduceWorker
public class ReduceWorker
A ReduceWorker actor, as a subsystem of the MapReduce system.
This actor has a parameter classNameForReduce which is the qualified name for a Java class that extends ptolemy.actor.ptalon.lib.MapReduceAlgorithm. It must also have a no argument constructor. By extending this abstract class, it will implement a method named reduce with type signature:
public List<String> reduce(String key,
BlockingQueue<String> value)
This method defines the Reduce algorithm for the MapReduce system. At each call, it should return a list of Strings, which is a reduction of the list of input values. At each firing, this actor inputs all avaiable input keys and values. It outputs the value tokens when its doneReading port recieves a true value. This should only happen after all inputs have been sent to the system.
When implementing a custom reduce method in a subclass of MapReduceAlgorithm, note to use the take method to get values from the queue. Call the isQueueEmpty of MapReduceAlgorithm to test if this actor has stopped putting values on the queue and that all values have been taken from the queue. The last element of the queue will allways be the empty string. Ignore this value.
KeyValuePair
,
Serialized Form
Red (cxh) |
Red (cxh) |
Nested Class Summary |
---|
Nested classes/interfaces inherited from class ptolemy.kernel.Entity |
---|
Entity.ContainedObjectsIterator |
Field Summary | |
---|---|
private boolean |
_doneReading
|
private boolean |
_readMode
|
private java.lang.Class<?> |
_reduceClass
|
private java.util.Map<java.lang.String,MapReduceAlgorithm> |
_runningAlgorithms
Each key is a distinct key for a reduce call, and each value is a MapReduceAlgorithm to reduce a set of values. |
StringParameter |
classNameForReduce
The qualifed class name for a Java class containing a method with signature: public static List<String[]> map(String key, String value)
Each element of each returned list should be a length two array of
Strings. |
TypedIOPort |
doneReading
A boolean input. |
TypedIOPort |
inputKey
A String input key. |
TypedIOPort |
inputValue
A String input value. |
TypedIOPort |
outputKey
A String output key. |
TypedIOPort |
outputValue
A String output value. |
Fields inherited from class ptolemy.actor.AtomicActor |
---|
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested |
Fields inherited from class ptolemy.kernel.util.NamedObj |
---|
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Fields inherited from interface ptolemy.actor.Executable |
---|
COMPLETED, NOT_READY, STOP_ITERATING |
Constructor Summary | |
---|---|
ReduceWorker(CompositeEntity container,
java.lang.String name)
Create a new actor in the specified container with the specified name. |
Method Summary | |
---|---|
private void |
_setReduceMethod()
Set the map method using the class specified in classNameForMap. |
void |
attributeChanged(Attribute attribute)
React to a change in an attribute. |
void |
fire()
Read in a token on the inputKey and inputValue ports and output pairs of tokens on the ouputKey, outputValue ports. |
void |
initialize()
Extract the map method from the classNameForMap parameter. |
boolean |
postfire()
Return true, unless stop() has been called, in which case, return false. |
boolean |
prefire()
Return true if there is an available key token and value token on the inputKey and inputValue ports. |
void |
wrapup()
Clean up memory. |
Methods inherited from class ptolemy.actor.TypedAtomicActor |
---|
_addPort, _fireAt, _fireAt, attributeTypeChanged, clone, newPort, typeConstraintList, typeConstraints |
Methods inherited from class ptolemy.kernel.ComponentEntity |
---|
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName |
Methods inherited from class ptolemy.kernel.Entity |
---|
_description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName |
Methods inherited from class ptolemy.kernel.InstantiableNamedObj |
---|
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface ptolemy.actor.Actor |
---|
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList |
Methods inherited from interface ptolemy.actor.Executable |
---|
isFireFunctional, isStrict, iterate, stop, stopFire, terminate |
Methods inherited from interface ptolemy.actor.Initializable |
---|
addInitializable, preinitialize, removeInitializable |
Methods inherited from interface ptolemy.kernel.util.Nameable |
---|
description, getContainer, getDisplayName, getFullName, getName, getName, setName |
Methods inherited from interface ptolemy.kernel.util.Derivable |
---|
getDerivedLevel, getDerivedList, propagateValue |
Field Detail |
---|
public StringParameter classNameForReduce
public static List<String[]> map(String key, String value)
Each element of each returned list should be a length two array of Strings.
public TypedIOPort doneReading
public TypedIOPort inputKey
public TypedIOPort inputValue
public TypedIOPort outputKey
public TypedIOPort outputValue
private boolean _doneReading
private boolean _readMode
private java.lang.Class<?> _reduceClass
private java.util.Map<java.lang.String,MapReduceAlgorithm> _runningAlgorithms
Constructor Detail |
---|
public ReduceWorker(CompositeEntity container, java.lang.String name) throws IllegalActionException, NameDuplicationException
container
- The container.name
- The name of this actor within the container.
IllegalActionException
- If this actor cannot be contained
by the proposed container (see the setContainer() method).
NameDuplicationException
- If the name coincides with
an entity already in the container.Method Detail |
---|
public void attributeChanged(Attribute attribute) throws IllegalActionException
attributeChanged
in class NamedObj
attribute
- The attribute that changed.
IllegalActionException
- If the change is not acceptable
to this container. If the class set in classNameForReduce
does not exist, or if the class exists but does not contain a map
method with an appropriate signature, this exception will be thrown.public void fire() throws IllegalActionException
fire
in interface Executable
fire
in class AtomicActor
IllegalActionException
- If there is any trouble calling
the map method.public boolean prefire() throws IllegalActionException
prefire
in interface Executable
prefire
in class AtomicActor
IllegalActionException
- Not thrown in this class.public boolean postfire() throws IllegalActionException
AtomicActor
postfire
in interface Executable
postfire
in class AtomicActor
IllegalActionException
- If thrown in the base class.public void wrapup() throws IllegalActionException
wrapup
in interface Initializable
wrapup
in class AtomicActor
IllegalActionException
- If thrown in the base class.public void initialize() throws IllegalActionException
initialize
in interface Initializable
initialize
in class AtomicActor
IllegalActionException
- If unable to extract an appropriate
map method.private void _setReduceMethod() throws IllegalActionException
IllegalActionException
- If the map method does not
exist, has the wrong type signature, or has the wrong
access modifiers.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |