0

Ich habe lokal 3 Knoten in 'Test Cluster' von Cassandra konfiguriert. Wenn ich sie ausführe und einen Schlüsselbereich oder eine Tabelle auch auf allen drei Knoten erzeuge, erscheint der Schlüsselraum oder die Tabelle.Seltsame Replikation in Cassandra

Das Problem, mit dem ich es zu tun habe, ist, wenn ich aus CSV Millionen von Zeilen in der Tabelle, die ich bereits gebaut habe, die gesamten Daten erscheint plötzlich auf allen drei Knoten erscheint. Ich habe die gleichen Daten über die drei Knoten repliziert.

Wie ich weiß, sollten die Daten, die ich importiere, über die Knoten, aber teilweise repliziert/verteilt werden. Eine Partition auf dem ersten Knoten, zweite auf der dritten, dritte auf dem zweiten Knoten, vierte wieder auf dem ersten Knoten und ... Bin ich richtig oder mir fehlt etwas Großes?

Auch meine Schreibgeschwindigkeit lokal ist etwa 10k Zeilen/Sekunde für die Multi-Knoten-Cluster. Ist das nicht ein bisschen zu niedrig?

Ich möchte eine Diskussion erstellen, damit ich vielleicht etwas mehr von Ihrer Erfahrung lernen und sehen kann, wo ich Dinge durcheinander bringe.

Vielen Dank!

Antwort

0

Die Anzahl der Knoten, in die Daten in Ihrem Cluster geschrieben werden, wird durch den Replikationsfaktor für diesen Schlüsselbereich bestimmt. Wenn Sie 3 Knoten haben und die Daten auf alle Knoten geschrieben werden, muss diese Einstellung auf 3 festgelegt werden. Wenn Sie nur die Daten replizieren möchten, die auf zwei Knoten repliziert werden, legen Sie diesen Wert auf Zwei fest.

Ihre Schreibgeschwindigkeit wird von der Konsistenzstufe beeinflusst, die Sie beim Schreiben angeben. Wenn Sie ALL eingestellt haben, müssen Sie warten, bis alle Knoten, die die Daten schreiben, die Daten geschrieben haben (in Ihrem Fall alle 3 Knoten basierend auf Ihrem Replikationsfaktor). Wenn Sie Ihre Konsistenz auf den Schreibvorgang reduzieren, erhalten Sie wahrscheinlich schnellere Schreibzeiten. Es gibt ein Gleichgewicht zwischen Ihrem Replikationsfaktor, der Schreibkonsistenzstufe und der Lesekonsistenzstufe, die Sie weiter erforschen können.

+0

Also was denkst du, warum alle meine Daten auf alle Knoten repliziert werden, nicht durch die Partitionen? Und was schlagen Sie für Qurom-Set vor, ist es besser, es so einzustellen, dass nur ein Knoten überprüft wird? Auch, wie Sie sehen, haben Sie bessere Kenntnisse als ich, habe ich 'endpoint_snitch: GossipingPropertyFileSnitch' ist das ok, oder ist es besser, mit' SimpleSnitch' zu konfigurieren? Vielen Dank :) –

+0

GossipingPropertyFileSnitch ist in Ordnung, solange Sie Ihre cassandrackdc.properties konfiguriert haben. Siehe diese Seite für weitere Details: https://docs.datastax.com/de/cassandra/2.0/cassandra/architecture/architectureSnitchGossipPF_c.html Ich bin mir nicht sicher, ob ich Ihre erste Frage verstehe. Ihre Daten werden mit einem Replikationsfaktor repliziert. Wenn dieser Replikationsfaktor auf die Anzahl der Knoten festgelegt ist, die Sie haben, wird er auf alle repliziert. Wenn es niedriger ist, repliziert es basierend auf der Partition und wo es in den Token-Bereich fällt. – gsteiner

+0

Wie bei einer quorom-Konfiguration liegt es an Ihnen, ob Sie beim Schreiben oder Lesen Konsistenz mit der von Ihnen festgelegten Konsistenzstufe gewährleisten wollen. Wenn Sie mehr schreiben, dann sollten Sie es beim Lesen garantieren (da es weniger Zeit zum Schreiben braucht). Sie können Konsistenz garantieren, solange Ihr CL beim Lesen + Ihr CL beim Schreiben größer ist als Ihr Replikationsfaktor (CLr + CLw> RF). – gsteiner