Sommario:
- Che cosa sono i dati del grafico?
- L'applicazione più nota per i database di grafici è l'algoritmo PageRank di Google, che calcola le relazioni di collegamento tra tutte le pagine Web conosciute. Google rappresenta il Web come un gigantesco grafico, in cui le pagine Web sono nodi e i collegamenti da una pagina all'altra sono rappresentati come spigoli. (Google ha condiviso la ricchezza pubblicando un documento che descrive il suo progetto di analisi del grafico - etichettato Pregel - nel 2010). L'elaborazione del grafico che interessava a Google era il calcolo del numero di connessioni in entrata per ciascuna pagina web.
- A partire dalla primavera 2014, l'analisi grafica su Hadoop rimane nelle sue fasi iniziali. Con l'avvento di YARN in Hadoop 2, l'analisi del grafico e altre tecniche di elaborazione specializzate diventeranno sempre più popolari su Hadoop. Molti dei siti social menzionati in questo articolo utilizzano i propri database di grafi proprietari e motori di elaborazione, ma Facebook è un utente di spicco di Giraph. Poiché il sigillo di approvazione (implicito) di Facebook, Giraph è diventato una scelta popolare per l'analisi del grafo su Hadoop, ma ha alcune limitazioni. È solo un motore di elaborazione perché carica i dati sotto forma di grafico nella memoria del cluster ed è ottimizzato per le query orientate ai batch.
Video: Apache Giraph Large Scale Graph Processing On Hadoop 2024
Una delle tecnologie NoSQL emergenti più eccitanti riguarda la memorizzazione e l'elaborazione dei dati del grafico. Potresti pensare che questa affermazione sia una vecchia notizia perché gli scienziati informatici hanno sviluppato tecniche di analisi del grafico per decenni. Quello che dici potrebbe essere vero, ma la novità è che usando Hadoop puoi fare analisi del grafico su larga scala.
Che cosa sono i dati del grafico?
Un grafico in termini di dati è semplicemente una rappresentazione delle singole entità e delle loro relazioni. Le entità di un grafico sono conosciute come nodi (o vertici ), e le relazioni tra entità in un grafico sono conosciute come bordi (o connessioni >). Rappresentare set di dati in un grafico, a differenza delle righe e delle colonne tradizionali, rende molto più semplice elaborare i dati in modo da rendere le relazioni tra gli oggetti cristalline. I calcoli tipici del grafico sono rappresentati dalla distanza del percorso più breve tra più nodi nel grafico, o semplicemente da quanti nodi hanno connessioni di un certo tipo a un nodo specifico.
L'applicazione più nota per i database di grafici è l'algoritmo PageRank di Google, che calcola le relazioni di collegamento tra tutte le pagine Web conosciute. Google rappresenta il Web come un gigantesco grafico, in cui le pagine Web sono nodi e i collegamenti da una pagina all'altra sono rappresentati come spigoli. (Google ha condiviso la ricchezza pubblicando un documento che descrive il suo progetto di analisi del grafico - etichettato Pregel - nel 2010). L'elaborazione del grafico che interessava a Google era il calcolo del numero di connessioni in entrata per ciascuna pagina web.
Analisi del grafico in Hadoop
A partire dalla primavera 2014, l'analisi grafica su Hadoop rimane nelle sue fasi iniziali. Con l'avvento di YARN in Hadoop 2, l'analisi del grafico e altre tecniche di elaborazione specializzate diventeranno sempre più popolari su Hadoop. Molti dei siti social menzionati in questo articolo utilizzano i propri database di grafi proprietari e motori di elaborazione, ma Facebook è un utente di spicco di Giraph. Poiché il sigillo di approvazione (implicito) di Facebook, Giraph è diventato una scelta popolare per l'analisi del grafo su Hadoop, ma ha alcune limitazioni. È solo un motore di elaborazione perché carica i dati sotto forma di grafico nella memoria del cluster ed è ottimizzato per le query orientate ai batch.
Un'altra soluzione di elaborazione grafica proviene da Aurelius, una società che ha rilasciato una serie di strumenti di analisi del grafico open source per Hadoop. Al centro della sua offerta c'è Titan, un database grafico che utilizza HBase come livello di persistenza, ottimizzato per le query interattive, e Faunus, un motore di elaborazione grafica che memorizza un'istantanea di un grafico da Titan in HDFS e esegue i lavori MapReduce contro di esso. Per entrambe le applicazioni interattive (Titan) e batch (Faunus), Aurelius ha l'API grafico-trasversale comune denominata Gremlin.
Infine, il progetto Apache Spark ha il ramo GraphX, che abilita la generazione dei dati del grafico e quindi l'elaborazione, tutto all'interno del framework Spark.