// create the aggregate Actor
aggregateActor = system.actorOf(new Props(AggregateActor.class));
// create the list of reduce Actors
reduceRouter = system.actorOf(new Props(new UntypedActorFactory() {
public UntypedActor create() {
return new ReduceActor(aggregateActor);
}
}).withRouter(new RoundRobinRouter(no_of_reduce_workers)));
// create the list of map Actors
mapRouter = system.actorOf(new Props(new UntypedActorFactory() {
public UntypedActor create() {
return new MapActor(reduceRouter);
}
}).withRouter(new RoundRobinRouter(no_of_map_workers)));
// create the overall WCMapReduce Actor that acts as the remote actor
// for clients
wcMapReduceActor = system.actorOf(new Props(new UntypedActorFactory() {
public UntypedActor create() {
return new WCMapReduceActor(aggregateActor, mapRouter);
}
}).withDispatcher("priorityMailBox-dispatcher"), "WCMapReduceActor");