KeyIn
- type of key used as input key typeValueIn
- type of value used as input value type@Beta public interface Job<KeyIn,ValueIn>
This interface describes a mapreduce Job that is build by JobTracker.newJob(KeyValueSource)
.
It is used to execute mappings and calculations on the different cluster nodes and reduce or collate these mapped
values to results.
Implementations returned by the JobTracker are fully threadsafe and can be used concurrently and multiple times once the configuration is finished.
Caution: The generic types of Jobs change depending on the used methods, which can make it necessary to use different assignment variables when used over multiple source lines.
An example on how to use it:
HazelcastInstance hz = getHazelcastInstance(); IMap<Integer, Integer> map = (...) hz.getMap( "default" ); JobTracker tracker = hz.getJobTracker( "default" ); Job<Integer, Integer> job = tracker.newJob( KeyValueSource.fromMap( map ) ); ICompletableFuture<Map<String, Integer>> future = job .mapper( buildMapper() ).reducer( buildReducer() ).submit(); Map<String, Integer> results = future.get();
Modifier and Type | Method and Description |
---|---|
Job<KeyIn,ValueIn> |
chunkSize(int chunkSize)
Defines the number of elements per chunk.
|
Job<KeyIn,ValueIn> |
keyPredicate(KeyPredicate<? super KeyIn> predicate)
Defines the
KeyPredicate implementation to preselect keys the MapReduce task will be executed on. |
<KeyOut,ValueOut> |
mapper(Mapper<KeyIn,ValueIn,KeyOut,ValueOut> mapper)
Defines the mapper for this task.
|
Job<KeyIn,ValueIn> |
onKeys(Iterable<? extends KeyIn> keys)
Defines keys to execute the mapper and a possibly defined reducer against.
|
Job<KeyIn,ValueIn> |
onKeys(KeyIn... keys)
Defines keys to execute the mapper and a possibly defined reducer against.
|
Job<KeyIn,ValueIn> |
topologyChangedStrategy(TopologyChangedStrategy topologyChangedStrategy)
Defines the strategy to handle topology changes while executing the map reduce job.
|
Job<KeyIn,ValueIn> onKeys(Iterable<? extends KeyIn> keys)
keys
- keys to be executed againstJob<KeyIn,ValueIn> onKeys(KeyIn... keys)
keys
- keys to be executed againstJob<KeyIn,ValueIn> chunkSize(int chunkSize)
ReducerFactory
is defined, the chunk will be sent to the nodes that
is responsible for the emitted keys.chunkSize
- the number of elements per chunkJob<KeyIn,ValueIn> topologyChangedStrategy(TopologyChangedStrategy topologyChangedStrategy)
TopologyChangedStrategy
.topologyChangedStrategy
- strategy to handle topology changes while executing the map reduce jobJob<KeyIn,ValueIn> keyPredicate(KeyPredicate<? super KeyIn> predicate)
KeyPredicate
implementation to preselect keys the MapReduce task will be executed on.
Preselecting keys can speed up the job massively.onKeys(Iterable)
or onKeys(Object...)
to define a
range of known and evaluated keys.predicate
- predicate implementation to be used to evaluate keys<KeyOut,ValueOut> MappingJob<KeyIn,KeyOut,ValueOut> mapper(Mapper<KeyIn,ValueIn,KeyOut,ValueOut> mapper)
IllegalStateException
to be thrown telling you to not change the internal state.KeyOut
- type of the emitted keyValueOut
- type of the emitted valuemapper
- tasks mapperCopyright © 2016 Hazelcast, Inc.. All Rights Reserved.