Innehållsförteckning:
- Vad är grafdata?
- Den mest kända applikationen för grafdatabaser är Googles PageRank-algoritm, som beräknar länkförhållandena mellan alla kända webbsidor. Google representerar webben som en jätte graf, där webbsidorna är noder, och länkarna från en sida till en annan är representerade som kanter. (Google delade förmögenheten genom att publicera ett papper som beskriver sitt grafanalysprojekt - märkt Pregel-back 2010.) Den grafbehandling som Google var intresserad av var att beräkna antalet inkommande anslutningar för varje webbsida.
- Från och med våren 2014 kvarstår grafanalys på Hadoop i sina tidiga stadier. Med tillkomsten av Garn i Hadoop 2 kommer grafanalys och andra specialiserade bearbetningstekniker att bli alltmer populära på Hadoop. Många av de sociala sidorna som nämns i denna artikel använder sina egna grafiska databaser och bearbetningsmotorer, men Facebook är en framträdande användare av Giraph. Eftersom Facebooks (underförstådda) godkännandegods har Giraph blivit ett populärt val för grafanalys på Hadoop, men det har några begränsningar. Det är enbart en bearbetningsmotor eftersom den laddar data som ett diagram i klustrets minne och det är optimerat för satsvisa frågor.
Video: hadoop yarn architecture 2024
En av de mer spännande nya NoSQL-teknikerna innefattar lagring och bearbetning av grafdata. Du kanske tror att detta uttalande är gammal nyhet eftersom datavetenskapare har utvecklat grafanalystekniker i årtionden. Vad du säger kan väl vara sant, men det nya är att med hjälp av Hadoop kan du göra grafanalys i stor skala.
Vad är grafdata?
A graf i data termer är helt enkelt en representation av enskilda enheter och deras relationer. En grafs enheter är kända som noder (eller vertices ) och relationerna mellan enheter i ett diagram kallas kanter (eller anslutningar >). Att representera dataset i en graf, i motsats till traditionella rader och kolumner, gör det mycket lättare att bearbeta dina data på ett sätt som gör relationerna mellan objekt kristallklara. Typiska grafberäkningar representeras av det kortaste vägavståndet mellan flera noder i ditt diagram, eller helt enkelt av hur många noder som har anslutningar av en viss typ till en specifik nod.
Den mest kända applikationen för grafdatabaser är Googles PageRank-algoritm, som beräknar länkförhållandena mellan alla kända webbsidor. Google representerar webben som en jätte graf, där webbsidorna är noder, och länkarna från en sida till en annan är representerade som kanter. (Google delade förmögenheten genom att publicera ett papper som beskriver sitt grafanalysprojekt - märkt Pregel-back 2010.) Den grafbehandling som Google var intresserad av var att beräkna antalet inkommande anslutningar för varje webbsida.
Grafanalys i Hadoop
Från och med våren 2014 kvarstår grafanalys på Hadoop i sina tidiga stadier. Med tillkomsten av Garn i Hadoop 2 kommer grafanalys och andra specialiserade bearbetningstekniker att bli alltmer populära på Hadoop. Många av de sociala sidorna som nämns i denna artikel använder sina egna grafiska databaser och bearbetningsmotorer, men Facebook är en framträdande användare av Giraph. Eftersom Facebooks (underförstådda) godkännandegods har Giraph blivit ett populärt val för grafanalys på Hadoop, men det har några begränsningar. Det är enbart en bearbetningsmotor eftersom den laddar data som ett diagram i klustrets minne och det är optimerat för satsvisa frågor.
En annan grafhanteringslösning kommer från Aurelius, ett företag som har släppt en uppsättning grafiska analysverktyg för open source för Hadoop. Kärnan i sina erbjudanden är Titan, en grafdatabas med HBase som ett persistenslager, vilket optimeras för interaktiva frågor och Faunus, en grafhanteringsmotor som lagrar en ögonblicksbild av en graf från Titan i HDFS och kör MapReduce jobb mot den. För både de interaktiva (Titan) och batch (Faunus) applikationerna har Aurelius det gemensamma graf-traversala API-namnet Gremlin.
Slutligen har Apache Spark-projektet GraphX-offshoot, vilket möjliggör generering av grafdata, och sedan bearbetning, allt inom Spark-ramen.