Apache Giraph für Hadoop und HDInsight

So setzen Sie Graphen in Big-Data-Umgebungen ein

| Autor / Redakteur: Thomas Joos / Nico Litzel

Apache Giraph bietet Datenverarbeitung mit Vertices, Edges und Supersteps.
Apache Giraph bietet Datenverarbeitung mit Vertices, Edges und Supersteps. (Bild: The Apache Software Foundation)

Apache Giraph ermöglicht die Verarbeitung von Graphen in Hadoop und damit auch in Microsoft Azure HDInsight. Graphen stellen Beziehungen zwischen zwei Objekten dar, zum Beispiel Beziehungen in sozialen Netzwerken, aber auch Routen in Netzwerken. Aus diesem Grund ist die Verarbeitung solcher Daten in Big-Data-Umgebungen besonders interessant.

Wer sich mit Big Data bereits etwas auseinandergesetzt hat und Lösungen in diesem Bereich produktiv einsetzt, kann die Umgebung mit zusätzlichen Möglichkeiten zur Datenauswertung erweitern. Auch hier steht eine Vielzahl an Open-Source-Produkten zur Verfügung, zum Beispiel Apache Giraph. Das Apache-Top-Level-Produkt eignet sich vor allem für Big-Data-Umgebungen, in denen soziale Beziehungen und Netzwerke analysiert werden müssen. Entwickelt wurde die Umgebung ursprünglich auf Basis von Java.

Grundlage von Apache Giraph ist ein Hadoop-Cluster. Da es sich bei Giraph um eine Erweiterung des MapReduce-Algorithmus handelt, werden auch die Giraph-Jobs auf die einzelnen Knoten im Cluster verteilt. Die zu verarbeitenden Daten sind also im bereits installierten Hadoop-Cluster vorhanden und werden zusammen mit Hadoop verarbeitet.

Optimale und effiziente Analyse

Giraph verbessert die Analyse von verbundenen Strukturen und von sozialen Graphen und ist daher eine ideale Ergänzung, will man in der Big-Data-Lösung auch Daten aus sozialen Netzwerken analysieren. Das ist auch einer der Gründe warum Facebook, PayPal, Twitter, Yahoo und auch LinkedIn auf Giraph setzen.

Die Lösung kann extrem große Datenmengen effizient und schnell verarbeiten und über Hadoop zur Verfügung stellen. In einem Blogbeitrag informiert Facebook, dass mit Giraph Milliarden von Beziehungen in wenigen Minuten analysiert werden können. Auch Universitäten wie die TU Berlin arbeiten seit Jahren mit den Möglichkeiten von Giraph. Neben Hadoop unterstützt Giraph auch Apache Accumulo, Apache HBase, Apache Hive und Cloudera Impala.

Unterstützung für Cluster und Mehrkern-Prozessoren

Giraph orientiert sich an den Möglichkeiten von Bulk Synchronous Parallel (BSP) und Google Pregel (PDF). Vorteil gegenüber diesen Lösungen ist aber der offene Quellcode, die Kompatibilität mit Hadoop und die höhere Verfügbarkeit, da es keinen Single Point of Failure gibt. Die aktuelle Version arbeitet effizient bezüglich der Speichernutzung und bietet byteweise Serialisierung. Das Produkt ist zudem Cluster-fähig. Das heißt, Unternehmen können Giraph auch auf Clustern mit tausenden Knoten betreiben. In den meisten Fällen wird das Produkt parallel zu Hadoop eingesetzt, aber erst dann, wenn die Verarbeitung der Daten über Hadoop nicht mehr ausreicht.

Zur besseren Berechnung lassen sich mit Giraph auch Mehrkern-Prozessoren ansprechen und dadurch die Berechnungen deutlich beschleunigen. Berücksichtigen lassen sich neben gewichteten und ungewichteten Graphen auch gerichtete und ungerichtete Graphen sowie sogenannte Multigraphen.

Giraph unterstützt auch YARN. Einfach ausgedrückt handelt es sich dabei um eine Cluster-Verwaltungs-Technologie für Hadoop. YARN stellt sozusagen den Ressourcen-Manager dar. Viele Big-Data-Profis bezeichnen YARN auch als „MapReduce 2“.

YARN schreibt das Ressourcenmanagement und die Zeitplanungsfunktionen um und entkoppelt MapReduce von der Datenverarbeitungskomponente. Dadurch kann Hadoop mehr Bearbeitungsansätze und eine breitere Palette von Anwendungen unterstützen. Wer sich in Giraph einarbeiten will, sollten sich die Einarbeitungsseite des Projektes genauer ansehen.

Bessere Analyse von Netzwerken und Webseiten

Mithilfe von Graphen und Giraph ist es also möglich, potenzielle Beziehungen in sozialen Netzwerken zu ermitteln oder in großen Netzwerken das Routing zu verbessern, vor allem wenn zahlreiche Hops genutzt werden. Auch Website-Rankings lassen sich mit Graphen besser analysieren.

Um Giraph zu testen, können Entwickler zum Beispiel auch HDInsight in Microsoft Azure testen. Microsoft stellt ein Skript zur Verfügung, mit dem sich Giraph in einen HDInsight-Cluster integrieren lässt, auch in einer Testversion von Microsoft Azure. Eine ausführlichere Anleitung dazu ist in der Azure-Hilfe zu finden.

Durch die enorme Erweiterung von Big-Data-Funktionen in Microsoft Azure lässt sich auch Giraph künftig wesentlich besser in HDInsight nutzen. Azure Data Lake erlaubt in Zukunft zum Beispiel die Speicherung beliebiger Daten in sehr hoher Menge direkt in der Cloud. Microsoft verspricht eine nahezu unbegrenzte Datenspeicherung. Hier hat Microsoft auch ganz klar Big-Data-Szenarien im Hinterkopf, denn Data Lake ist kompatibel zum Hadoop File System (HDFS) und lässt sich daher optimal mit Hadoop und der Microsoft-Lösung HDInsight nutzen.

In diesem Zusammenhang wird auch die Weiterverarbeitung mit Giraph in HDInsight interessant. Um die Authentifizierung der Daten sicherzustellen, unterstützt Azure Data Lake auch die Anbindung an Azure Active Directory. Das ist vor allem bei der Analyse von Daten in sozialen Medien enorm wichtig. Die Daten werden zentral in Azure Data Lake gespeichert und sind dann auch von verschiedenen Anwendungen in Azure gleichzeitig abrufbar.

So läuft die Berechnung in Giraph

Giraph behandelt Eingabedaten als Graphen und kann Vertices und Edges nativ darstellen. Dabei weist Giraph den Vertices auch Klassen oder Modelle zu. Berechnet werden die Daten mit Supersteps. Dazu werden die Giraph-Jobs in einen MapReduce/YARN-Job umgewandelt, damit er kompatibel mit Hadoop ist und im Cluster ausgeführt werden kann. Alle Funktionen in einem Giraph-Job sind benutzerdefinierbar. Zur Implementierung verwenden Entwickler Java. Vorlagen für die Verwendung werden auch von Apache zur Verfügung gestellt.

Während der Berechnung tauschen die Vertices Werte untereinander aus. Am Anfang eines jeden Supersteps analysiert Giraph die Informationen des vorhergehenden Supersteps. Dazu haben die einzelnen Vertices auch eigene Speicher.

Fazit

Apache Giraph ist ein sehr effizientes und fehlertolerantes Analyse-System für soziale Graphen. Das Produkt ist stark skalierbar und sehr flexibel steuerbar. Da Apache Giraph kostenlos zur Verfügung steht, müssen Unternehmen zunächst keine Investitionen tätigen. Giraph ist allerdings ein sehr kompliziertes System und ist nur sinnvoll, wenn Hadoop bereits im Einsatz ist und im Unternehmen auch entsprechendes Know-how bezüglich Java, Hadoop und Big Data vorhanden ist. Erst wenn die Datenverarbeitung über Hadoop und die bekannten Zusatzwerkzeuge nicht mehr ausreichen, lohnt es sich, Giraph zusätzlich zu integrieren.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 43389914 / Infrastruktur)