Hazelcast stellt Map&Reduce API zur Verfügung

In der aktuellen Version 3.2 steht in Hazelcast nun auch die Möglichkeit zur Verfügung, eine Map&Reduce API zur Verarbeitung zu verwenden.
Die bisher häufig verwendete externe Erweiterung CastMapR ist hierdurch überflüssig und wurde durch eine Hadoop ähnlich API ersetzt, bietet aber im Gegensatz zu Hadoop ein in-memory realtime-processing. Map and Reduce Operationen werden hierbei auf allen Knoten konkurrierend ausgeführt.

Map&Reduce in Hazelcast adressiert Szenarien in welchen der EntryProcessor nicht optimal ist, wie in Data Transforming Szenarien. Da kein explizites Locking benötigt wird, eignet sich das System auch hervorragend für lang laufende Operationen.

Durch die Streaming-API ist die Verwendung intuitiv und einfach.

Als Datenquelle dient eine Implementierung des KeyValueSource Interfaces. Für die gängigen Anwendungsszenarien wie die Verarbeitung einer IMap oder IList stehen entsprechende Implementierungen zur Verfügung. Es können aber auch eigene Implementierungen erzeugt werden.

KeyValueSource source = KeyValueSource.fromMap( map );

Eine Streaming API ermöglicht eine einfache Komposition von Mappern und Reducern.

JobTracker jobTracker = hazelcastInstance.getJobTracker("default");
Job job = jobTracker.newJob( source );

job.mapper( new MyMapper() ).reducer( new MyReducerFactory() ).submit();

Die eigentlichen Mapper und Reducer Klassen müssen nur noch entsprechende Interfaces implementieren

public class MyMapper implements Mapper {
    @Override
    public void map(String key, String document, Context context) {
                        // ...
    }
}
public class MyReducerFactory implements ReducerFactory {
    @Override
    public Reducer newReducer( String key ) {
        return new MyReducer();
    }
    private class MyReducer extends Reducer {
        @Override
        public void reduce( Long value ) {...}
        @Override
        public Long finalizeReduce() {...}
    }
}
Short URL for this post: https://wp.me/p4nxik-297
This entry was posted in Java Persistence, Java Runtimes - VM, Appserver & Cloud and tagged , , , , . Bookmark the permalink.

1 Response to Hazelcast stellt Map&Reduce API zur Verfügung

  1. Hey kurzer aber schöner Artikel :) Ich freue mich, dass die API Anklang findet und gefällt :)

Leave a Reply