use of com.hazelcast.mapreduce.impl.MapReduceService in project hazelcast by hazelcast.
the class FireNotificationOperation method run.
@Override
public void run() throws Exception {
MapReduceService mapReduceService = getService();
mapReduceService.dispatchEvent(notification);
}
use of com.hazelcast.mapreduce.impl.MapReduceService in project hazelcast by hazelcast.
the class MapCombineTask method requestAssignment.
private static void requestAssignment(Set<Object> keys, JobSupervisor supervisor) {
try {
MapReduceService mapReduceService = supervisor.getMapReduceService();
String name = supervisor.getConfiguration().getName();
String jobId = supervisor.getConfiguration().getJobId();
KeysAssignmentResult assignmentResult = mapReduceService.processRequest(supervisor.getJobOwner(), new KeysAssignmentOperation(name, jobId, keys));
if (assignmentResult.getResultState() == SUCCESSFUL) {
Map<Object, Address> assignment = assignmentResult.getAssignment();
for (Map.Entry<Object, Address> entry : assignment.entrySet()) {
// Cache the keys for later mappings
if (!supervisor.assignKeyReducerAddress(entry.getKey(), entry.getValue())) {
throw new IllegalStateException("Key reducer assignment in illegal state");
}
}
}
} catch (Exception e) {
// Just announce it to higher levels
throw new RuntimeException(e);
}
}
use of com.hazelcast.mapreduce.impl.MapReduceService in project hazelcast by hazelcast.
the class AbstractMapReduceTask method processMessage.
@Override
protected void processMessage() {
MapReduceService mapReduceService = getService(MapReduceService.SERVICE_NAME);
NodeEngine nodeEngine = mapReduceService.getNodeEngine();
ClusterService clusterService = nodeEngine.getClusterService();
if (clusterService.getSize(MemberSelectors.DATA_MEMBER_SELECTOR) == 0) {
throw new IllegalStateException("Could not register map reduce job since there are no nodes owning a partition");
}
final String objectName = getDistributedObjectName();
AbstractJobTracker jobTracker = (AbstractJobTracker) mapReduceService.createDistributedObject(objectName);
TrackableJobFuture jobFuture = new TrackableJobFuture(objectName, getJobId(), jobTracker, nodeEngine, null);
if (jobTracker.registerTrackableJob(jobFuture)) {
startSupervisionTask(jobTracker);
jobFuture.andThen(this);
}
}
use of com.hazelcast.mapreduce.impl.MapReduceService in project hazelcast by hazelcast.
the class MapReduceCancelMessageTask method call.
@Override
protected Object call() throws Exception {
MapReduceService mapReduceService = getService(MapReduceService.SERVICE_NAME);
Address jobOwner = mapReduceService.getLocalAddress();
mapReduceService.registerJobSupervisorCancellation(parameters.name, parameters.jobId, jobOwner);
JobSupervisor supervisor = mapReduceService.getJobSupervisor(parameters.name, parameters.jobId);
if (supervisor != null && supervisor.isOwnerNode()) {
Exception exception = new CancellationException("Operation was cancelled by the user");
supervisor.cancelAndNotify(exception);
}
return true;
}
use of com.hazelcast.mapreduce.impl.MapReduceService in project hazelcast by hazelcast.
the class AbstractMapReduceTask method startSupervisionTask.
private void startSupervisionTask(JobTracker jobTracker) {
final MapReduceService mapReduceService = getService(MapReduceService.SERVICE_NAME);
final JobTrackerConfig config = ((AbstractJobTracker) jobTracker).getJobTrackerConfig();
final boolean communicateStats = config.isCommunicateStats();
final int chunkSize = getChunkSizeOrConfigChunkSize(config);
final TopologyChangedStrategy topologyChangedStrategy = getTopologyChangedStrategyOrConfigTopologyChangedStrategy(config);
final String name = getDistributedObjectName();
final String jobId = getJobId();
final KeyValueSource keyValueSource = getKeyValueSource();
final Mapper mapper = getMapper();
final CombinerFactory combinerFactory = getCombinerFactory();
final ReducerFactory reducerFactory = getReducerFactory();
final Collection keys = getKeys();
final Collection<Object> keyObjects = getKeyObjects(keys);
final KeyPredicate predicate = getPredicate();
final ClusterService clusterService = nodeEngine.getClusterService();
for (Member member : clusterService.getMembers(KeyValueJobOperation.MEMBER_SELECTOR)) {
Operation operation = new KeyValueJobOperation(name, jobId, chunkSize, keyValueSource, mapper, combinerFactory, reducerFactory, communicateStats, topologyChangedStrategy);
executeOperation(operation, member.getAddress(), mapReduceService, nodeEngine);
}
// After we prepared all the remote systems we can now start the processing
for (Member member : clusterService.getMembers(DATA_MEMBER_SELECTOR)) {
Operation operation = new StartProcessingJobOperation(name, jobId, keyObjects, predicate);
executeOperation(operation, member.getAddress(), mapReduceService, nodeEngine);
}
}
Aggregations