5

Ich habe den Begriff "Hadoop-Cluster" gehört, aber es scheint im Gegensatz zu dem zu stehen, was ich von einem "Grid" und einem "Cluster" verstehe.Ist Hadoop nicht mehr ein Raster als ein Cluster?

Mein Verständnis ist, dass ein Gitter ein System 2+ Computer aus verteilt ist (Knoten), die alle teilen Computing-Ressourcen miteinander zu lösen das gleiche Problem. Ergo, wenn Sie versuchen würden, irgendeine Art von wissenschaftlichem Hochleistungsrechnen, Zahlen-Knirschen, zu tun, würden Sie ein Raster von Maschinen schaffen, um alle über das gleiche Problem zu arbeiten.

Mein eines Cluster verstehen ist, dass es ein verteiltes System ist von 2+ Computern besteht, die alle unabhängig voneinander verschiedene, kleinere Probleme zu lösen arbeiten. Daher platzieren Sie in der Regel einen Cluster hinter einem Load Balancer und lassen jeden Knoten ein kleines Problem lösen, wenn der Load Balancer ihm einen solchen zuweist.

Also, wenn mein Verständnis richtig ist, dann verwenden Sie Raster, um kleine Zahlen von gigantischen (rechenintensiven) Jobs zu lösen, und Cluster, um hohe Anzahlen kleiner (rechnerisch leichter) Jobs zu lösen.

Also zuerst, wenn mein Verständnis von Grids und Clustern nicht korrekt ist, bitte beginnen Sie, indem Sie mich korrigieren!

Angenommen, ich bin mehr oder weniger korrekt, warum haben wir Hadoop Cluster? Wenn der Zweck von Hadoop darin besteht, ein Big Data-Problem (ein rechenintensives Problem) zu nehmen und eine Menge Standardhardware zu verwenden, um viele Knoten zu erstellen, die mit den anderen zusammenarbeiten können, um das gleiche Problem zu lösen, ist das kein Grid?

Ist es richtiger zu sagen, dass wir Hadoop Gitter haben? Warum oder warum nicht? Danke im Voraus!

+0

Wikipedia hat einige [Beispiele für Grid-Computing] (https://en.wikipedia.org/wiki/Grid_computing), die die Unterscheidung klären könnten. – kjw0188

Antwort

9

Ihr Verständnis ist teilweise korrekt. Ich würde gerne ein paar Dinge hinzufügen, die wahrscheinlich etwas Luft klären würden. Es ist richtig, dass Hadoop verwendet wird, um BigData-Probleme zu lösen. Aber dies geschieht, indem man eine große Aufgabe in ein Nein umwandelt. von kleineren Aufgaben und jede dieser kleineren Aufgaben wird auf verschiedenen Maschinen (Knoten) isoliert gelöst. Die Knoten kommunizieren nicht miteinander und sie teilen auch keine Ressource. Jede Maschine hat ihren eigenen Speicher, ihre eigene CPU und ihre Festplatte, die während der Verarbeitung verwendet werden und nichts mit den Ressourcen anderer Maschinen zu tun haben.

Also, wenn Sie es mikroskopisch analysieren, werden Sie feststellen, dass, während Sie versuchen, "1" großes Problem zu lösen, Sie am Ende Verarbeitung "n" kleinere isolierte Probleme als Gegensatz zu Grid-Computing, wo alle Knoten versuchen zu beenden löse das gleiche Problem. Ein weiterer wichtiger Aspekt ist, dass in einem Grid Ihre Interaktion mit dem System als Ganzes erfolgt und nicht mit irgendwelchen Knoten, was nicht der Fall ist, wenn Sie einen Job zur Verarbeitung an Hadoop-Cluster übergeben. Sie geben Ihren Job an den "Master" -Knoten weiter und müssen sich nicht um die "Slaves" oder die Aufgabenverteilung usw. kümmern. Sobald Ihr Job an den Master-Knoten übergeben wurde, wird er automatisch in "n" kleinere Jobs aufgeteilt master sorgt dafür, dass der Prozess automatisch auf "n" verschiedenen Systemen gestartet wird.

Hadoop repräsentiert tatsächlich das "Distributed Computing" -Paradigma und man könnte es sich als Teilmenge des Grid Computing vorstellen.

Eine weitere Sache. Sie haben in Ihrer Frage "Lastverteilung" angegeben.Man könnte es sich beim Spielen mit Hadoop vorstellen. Wenn Sie mit der Verarbeitung eines Jobs auf einem Hadoop-Cluster beginnen, werden alle "n" kleineren Jobs ('coz of task splitting' wie zuvor angegeben) in einer ausgewogenen Weise verarbeitet. Balanciert bedeutet hier, dass alle Slave-Knoten die gleiche (in etwa, wenn nicht perfekt) Menge an Daten erhalten, die auf gleicher (idealerweise) Menge an Ressourcen verarbeitet werden sollen.

Hoffe das beantwortet Ihre Frage.

+0

Dank @Tariq (+1) - tolle Antwort, aber es hat mich in einer Hinsicht verwirrt! Ihr dritter Absatz ist ein * wenig * verwirrend: Sagen Sie, dass Hadoop * wie ein Raster in dem Sinne ist, dass Sie einem Master einen Job vorlegen und nur mit diesem Master interagieren? Oder sagst du, dass Hadoop * nicht wie ein Raster ist und dass du einen Job in kleinere Einheiten zerlegen musst und jede Einheit einem Slave schicken musst? Danke für die Klarstellung hier! –

+1

Sie sind willkommen TM und Entschuldigung für die Verwirrung. Damit meine ich, dass Sie den Auftrag in einem Grid an das System als Ganzes und nicht an bestimmte Knoten übergeben. Auf der anderen Seite, in einer Umgebung mit verteiltem Computing, wird die Anfrage an bestimmte Knoten weitergeführt, der im Falle von Hadoop der Hauptknoten ist. HTH – Tariq

+0

Danke nochmal @Tariq, aber immer noch nicht sicher: In welches der beiden Modelle passt Hadoop?!? –