Graph Verarbeitung In Hadoop

Eines der spannenden Schwellen NoSQL-Technologien beinhaltet die Speicherung und Verarbeitung von Grafikdaten. Man könnte denken, dass diese Aussage von gestern ist, weil Informatiker Graph Analysetechniken seit Jahrzehnten entwickelt haben. Was Sie sagen, kann gut sein, wahr, aber was neu ist, ist, dass Hadoop durch Verwendung Sie Graphanalyse in großem Maßstab tun können.

Menu

Was ist Graph Daten?

EIN Graph in Daten Begriffe ist einfach eine Darstellung der einzelnen Einheiten und ihre Beziehungen. Eine grafische Darstellung, die Einheiten sind bekannt als Knoten (oder Eckpunkte), Und die Beziehungen zwischen Entitäten in einem Graphen sind bekannt als Kanten (oder Verbindungen). Darstellt Datensätze in einem Diagramm, wie die traditionellen Zeilen und Spalten entgegengesetzt, ist es viel einfacher, die Daten in einer Weise zu verarbeiten, die die Beziehungen zwischen den Objekten kristallklaren machen. Typische Graphen Berechnungen werden durch den kürzesten Pfad Abstand zwischen mehreren Knoten im Graphen dargestellt, oder einfach durch wie viele Knoten haben Verbindungen eines bestimmten Typs an einem bestimmten Knoten.

Anwendungen für Graphenanalyse

Die bekannteste Anwendung für Graph-Datenbanken ist Googles PageRank-Algorithmus, der die Verknüpfung von Beziehungen zwischen allen bekannten Web-Seiten berechnet. Google stellt das Web als riesigen Graphen, wo die Web-Seiten-Knoten sind, und die Links von einer Seite zur anderen als Kanten dargestellt. (Google teilte den Reichtum durch ein Papier veröffentlicht die Graphanalyse Projekt beschreiben - markierten Pregel - zurück in 2010.) Die Grafik-Verarbeitung, die Google war daran interessiert, ging es um die Anzahl der eingehenden Verbindungen für jede Web-Seite zu berechnen.

Facebook hat einen signifikanten Sprung in 2013, wenn es bekannt gegeben, dass es Apache Giraph wurde mit (basierend auf dem Pregel Papier), ein Motor Graph Verarbeitung von Graphen in HDFS gespeichert zu verarbeiten. Es zeigte die Macht des Giraph durch eine Kurve vorführt alle Facebook-Nutzer darstellt (mehr als 1 Milliarde) und ihre Freundschaften (Milliarden!), Die über 1 Billion Kanten insgesamt hat. Diese Skala ist erschütternd: Wenn Sie Facebook und Sie müssen Berechnungen wie Freund Empfehlungen zu machen, was besseres Werkzeug als ein Graph Processing-Engine zu benutzen? Es ist keine Überraschung, dass eine verteilte Graphdatenbank im Kern jeder andere bemerkenswerte Social-Media-Website, darunter Twitter, LinkedIn, OkCupid und Pinterest liegt.

Ein Graph Processing-Engine kann leicht viele praktische Fragen für Social-Media-Websites beantworten. Zwei Beispiele dafür sind, wie LinkedIn zeigt die Grade der Trennung zwischen Ihnen und einem anderen Benutzer ein kürzesten Weg Berechnung (was ist die engste Verbindung zwischen zwei Knoten?) Und wie OkCupid zeigt dem Nutzer mit gemeinsamen Interessen ist ein Satz von Collaborative Filtering Berechnungen (was sind die meisten gemeinsame Verbindungen zu einem bestimmten Satz von Knoten?).

Analyse der Graphik in Hadoop

Ab Frühjahr 2014 bleibt Graphanalyse auf Hadoop in einem frühen Stadium. Mit dem Aufkommen von GARN in Hadoop 2, Graphanalyse und andere spezialisierte Verarbeitungstechniken werden zunehmend auf Hadoop populär geworden. Viele der Social Sites in diesem Artikel erwähnt verwenden, um ihre eigenen, proprietären Graph-Datenbanken und Verarbeitungsmaschinen, aber Facebook ist eine prominente Nutzer von Giraph. Da Facebook (konkludente) Gütesiegel hat Giraph eine beliebte Wahl für die Graphenanalyse auf Hadoop werden, aber es hat einige Einschränkungen. Es ist lediglich eine Verarbeitungsmaschine, da es Daten als Diagramm in den Speicher des Clusters lädt, und es ist für chargenorientierten Abfragen optimiert.

Ein weiterer Graph Verarbeitungslösung kommt von Aurelius, einem Unternehmen, das eine Reihe von Open-Source-Graph-Analyse-Tools für Hadoop veröffentlicht. Im Kern seines Angebots ist Titan, ein Graph-Datenbank HBase als Persistenz-Schicht verwendet, die für interaktive Abfragen optimiert ist, und Faunus, ein Motor Graph Verarbeitung, die eine Momentaufnahme eines Graphen aus Titan in HDFS speichert und läuft MapReduce Jobs dagegen . sowohl für die interaktive (Titan) und Batch (Faunus) Anwendungen hat Aurelius die gemeinsame Graph-Traversal-API namens Gremlin.

Schließlich hat der Apache Spark-Projekt die GraphX ​​Spross, die die Erzeugung von Grafikdaten ermöglicht, und dann die Verarbeitung, die alle innerhalb der Spark-Rahmen.

Menü