02.11.2013 Aufrufe

Verteilte Auswertung von RDF-Graphen mit MapReduce und ...

Verteilte Auswertung von RDF-Graphen mit MapReduce und ...

Verteilte Auswertung von RDF-Graphen mit MapReduce und ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4 Implementierung <strong>und</strong><br />

Optimierungen<br />

Insgesamt wurden zwei Anwendungen implementiert. Die erste Anwendung dient<br />

zum Speichern <strong>von</strong> <strong>RDF</strong>-Daten in Cassandra. Sie erhält eine im N3-Format vorliegende<br />

<strong>RDF</strong>-Datei als Eingabe <strong>und</strong> speichert die Daten in die drei Spaltenfamilien<br />

„SPO“, „POS“ <strong>und</strong> „OSP“ (siehe Kap. 3.1). Der Benutzer kann den Keyspace festlegen,<br />

sowie die Anzahl der Tripel, die pro Batch in die Datenbank geschrieben werden,<br />

um die Schreibgeschwindigkeit zu regulieren. Die Anwendung wird auf einem Knoten<br />

des Clusters geladen <strong>und</strong> dort ausgeführt.<br />

Die zweite Anwendung, die der <strong>Auswertung</strong> der SPARQL-BGP Anfragen dient, wird<br />

<strong>mit</strong> Hadoop gestartet <strong>und</strong> läuft verteilt auf dem Cluster. Als Eingabe erhält das<br />

Programm die Anfrage, sowie den Namen des Keyspace, auf dem die <strong>Auswertung</strong><br />

durchgeführt werden soll. Die Ausgabe erfolgt auf dem HDFS. Abb. 4.1 zeigt die<br />

Systemarchitektur. Links ist die Anwendung zur <strong>Auswertung</strong> der SPARQL-BGP-<br />

Anfragen zu sehen, während rechts das Einleseprogramm dargestellt wird.<br />

Beide Anwendungen wurden in der Programmiersprache Java implementiert. Der<br />

Hector Client 1 ermöglicht den Zugriff auf Cassandra in Java-Programmen <strong>und</strong> wird<br />

in beiden Anwendungen verwendet. Das selbsternannte Ziel <strong>von</strong> Hector ist es, dem<br />

Entwickler Funktionen zur Verfügung zu stellen, um einfacher auf Cassandra zuzugreifen.<br />

Dabei greift der Client selbst per Thrift-API auf Cassandra zu <strong>und</strong> ist so<strong>mit</strong><br />

ein Wrapper dieser Funktionen. Die <strong>MapReduce</strong>-Jobs greifen per ColumnFamilyInputFormat<br />

<strong>und</strong> Hector-Client auf die Datenbank zu. Das ColumnFamilyInputFormat<br />

wird vom Cassandra-Projekt zur Verfügung gestellt, um Daten aus Cassandra <strong>mit</strong><br />

<strong>MapReduce</strong> zu verarbeiten.<br />

1 http://prettyprint.me/2010/02/23/hector-a-java-cassandra-client/<br />

25

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!