Ich habe von vielen Tools / Frameworks gehört, die Menschen bei der Verarbeitung ihrer Daten unterstützen (Big Data-Umgebung).
Einer heißt Hadoop und der andere ist das noSQL-Konzept. Was ist der Unterschied in der Verarbeitung?
Ergänzen sie sich?
Ich habe von vielen Tools / Frameworks gehört, die Menschen bei der Verarbeitung ihrer Daten unterstützen (Big Data-Umgebung).
Einer heißt Hadoop und der andere ist das noSQL-Konzept. Was ist der Unterschied in der Verarbeitung?
Ergänzen sie sich?
Antworten:
Hadoop ist keine Datenbank , hadoop ist ein ganzes Ökosystem.
Die meisten Leute werden sich auf Mapreduce- Jobs beziehen, wenn sie über Hadoop sprechen. Bei einem Mapreduce-Job werden große Datasets in einige kleine Datenblöcke aufgeteilt und auf einen Cluster von Knoten verteilt, um fortzufahren. Am Ende wird das Ergebnis jedes Knotens wieder zu einem Datensatz zusammengefasst.
Angenommen, Sie laden eine Menge <String, Integer>
mit der Bevölkerung einiger Stadtteile in hadoop und möchten die Durchschnittsbevölkerung über die gesamten Stadtteile jeder Stadt ermitteln (Abbildung 1).
Abbildung 1
[new york, 40394]
[new york, 134]
[la, 44]
[la, 647]
...
Jetzt ordnet hadoop jeden Wert zuerst mit den Tasten zu (Abbildung 2).
Figur 2
[new york, [40394,134]]
[la, [44,647]]
...
Nach der Zuordnung werden die Werte der einzelnen Schlüssel auf einen neuen Wert reduziert (in diesem Beispiel der Durchschnitt über den Wertesatz der einzelnen Schlüssel) (Abbildung 3).
Figur 3
[new york, [20264]]
[la, [346]]
...
Jetzt wäre alles erledigt. Sie können das Ergebnis jetzt in das HDFS (Hadoop Distributed File System) oder in ein beliebiges DBMS oder eine beliebige Datei laden.
Das ist nur ein sehr einfaches und einfaches Beispiel dafür , was hadoop tun kann. Sie können in hadoop viel kompliziertere Aufgaben ausführen.
Wie Sie bereits in Ihrer Frage erwähnt haben, ergänzen sich hadoop und noSQL. Ich kenne ein paar Setups, bei denen zB Milliarden von Datensätzen von Sensoren in HBase gespeichert werden und dann über Hadoop endgültig in einem DBMS gespeichert werden.
NoSQL ist eine Möglichkeit, Daten zu speichern, für die keine Beziehung bestehen muss. Die Einfachheit des Designs und die Fähigkeit zur horizontalen Skalierung, eine Art, wie Daten gespeichert werden, ist das key : value
Paardesign. Dies bietet sich für eine Verarbeitung an, die Hadoop ähnelt. Die Verwendung einer NoSQL-Datenbank hängt wirklich von der Art des Problems ab, nach dem man sucht.
Hier ist ein guter Wikipedia-Link zu NoSQL
Hadoop ist ein System, das riesige Datenmengen speichern und verarbeiten soll. Es ist ein verteiltes Dateisystem dfs. Der Grund dafür ist, dass bei der Entwicklung von zentraler Bedeutung angenommen wird, dass Hardwarefehler häufig vorkommen. Dadurch werden mehrere Kopien derselben Information erstellt und auf mehrere Maschinen und Racks verteilt Habe noch zwei Kopien. Hier ist auch ein toller Link für Hadoop aus Wikipedia, Sie werden sehen, dass es meiner Meinung nach mehr als nur Speicher, sondern auch Verarbeitung ist: Hadoop