Ho sentito parlare di molti strumenti / framework per aiutare le persone a elaborare i propri dati (ambiente big data).
Uno si chiama Hadoop e l'altro è il concetto noSQL. Qual è la differenza nel punto di elaborazione?
Sono complementari?
Ho sentito parlare di molti strumenti / framework per aiutare le persone a elaborare i propri dati (ambiente big data).
Uno si chiama Hadoop e l'altro è il concetto noSQL. Qual è la differenza nel punto di elaborazione?
Sono complementari?
Risposte:
Hadoop non è un database , hadoop è un intero ecosistema.
La maggior parte delle persone farà riferimento lavori di riduzione mappe mentre parla di hadoop. Un processo mapreduce suddivide grandi set di dati in alcuni piccoli blocchi di dati e li distribuisce su un cluster di nodi per procedere. Alla fine, il risultato di ciascun nodo verrà riunito nuovamente come un unico set di dati.
Supponiamo che carichi in hadoop un insieme <String, Integer>
con la popolazione di alcuni quartieri all'interno di una città e desideri ottenere la popolazione media su tutti i quartieri di ogni città (figura 1).
Figura 1
[new york, 40394]
[new york, 134]
[la, 44]
[la, 647]
...
Ora hadoop prima mapperà ogni valore usando i tasti (figura 2)
figura 2
[new york, [40394,134]]
[la, [44,647]]
...
Dopo la mappatura ridurrà i valori di ciascuna chiave a un nuovo valore (in questo esempio la media sul set di valori di ciascuna chiave) (figura 3)
figura 3
[new york, [20264]]
[la, [346]]
...
ora hadoop sarebbe fatto con tutto. Ora puoi caricare il risultato nell'HDFS (hadoop file system distribuito) o in qualsiasi DBMS o file.
Questo è solo un esempio molto semplice e semplice di ciò che può fare hadoop. Puoi eseguire attività molto più complicate in hadoop.
Come hai già detto nella tua domanda, hadoop e noSQL sono complementari. Conosco alcune configurazioni in cui, ad esempio, miliardi di set di dati provenienti da sensori vengono archiviati in HBase e quindi passati attraverso hadoop per essere infine archiviati in un DBMS.
NoSQL è un modo per archiviare dati che non richiedono una sorta di relazione. La semplicità del suo design e la capacità di scala orizzontale, un modo in cui archiviano i dati è il key : value
design della coppia. Questo si presta a un'elaborazione simile a quella di Hadoop. L'uso di un db NoSQL dipende in realtà dal tipo di problema che si sta cercando.
Ecco un buon link di Wikipedia NoSQL
Hadoop è un sistema pensato per archiviare ed elaborare enormi blocchi di dati. È un file system distribuito dfs. La ragione per cui lo fa è così centrale nella sua progettazione che fa presumere che i guasti hardware siano comuni, facendo così più copie dello stesso pezzo di informazione e diffondendolo su più macchine e rack, quindi se si scende, nessun problema, noi avere altre due copie. Ecco un ottimo link per Hadoop anche da Wikipedia, vedrai che è, a mio avviso, più che solo archiviazione, ma anche elaborazione: Hadoop