2016-05-15 8 views
0

Ich versuchte, sstableloader zu verwenden, um Daten in Cassandra 3.5 zu laden. Die Daten wurden unter Verwendung von nodetool snapshot unter Cassandra 2.1.9 erfasst. Alle Tische wurden bis auf eine geladen. Es ist klein, nur 2 Spalten und 20 Zeilen. Also habe ich diesen Fehler eingegeben: https://issues.apache.org/jira/browse/CASSANDRA-11806. Der Fehler wurde schnell als Duplikat geschlossen. Es scheint kein Duplikat zu sein, da der ursprüngliche Fall einen Knoten direkt aktualisiert und keine Daten mit sstableloader lädt.Wie man Daten von Cassandra 2.1.9 zu einer frischen Installation 3.5 migriert

Trotzdem habe ich versucht, den Rat zu upgradesstable [sic] ausführen.

Die Anweisungen zum Upgrade von einer Version von Cassandra auf eine andere scheinen bestenfalls skizzenhaft. Hier ist, was habe ich auf Grund meiner Arbeits Backup/Restore und Informationen sammelte aus verschiedenen Cassandra docs auf, wie zu aktualisieren:

  • Snapshot die Daten von prod (Cassandra 2.1.9), wie üblich
  • Wiederherstellen von Daten auf Cassandra 2.1.14 läuft auf meinem Arbeitsplatz
  • die auf 2.1.14 (es funktionierte)
  • Kopieren sie die Daten/data/makeyourcase in eine Cassandra 3.5 installieren
  • Feuer bis Cassandra 3.5
  • Run Überprüfen wiederherstellen nodetool upgradesstables zu Aktualisieren Sie die sstables bis 3,5

nodetool upgradesstables versagt:

>./bin/nodetool upgradesstables 
error: Unknown column role in table makeyourcase.roles 
-- StackTrace -- 
java.lang.AssertionError: Unknown column role in table makeyourcase.roles 

Also, die Fragen: Ist es möglich, direkt von 2.1.x auf 3.5 zu aktualisieren? Was ist der eigentliche Upgrade-Prozess? Der Prozess bei http://docs.datastax.com/en/latest-upgrade/upgrade/cassandra/upgradeCassandraDetails.html fehlt scheinbar wichtige Details.

+0

Haben Sie auch das System-Keypace-Verzeichnis oder nur Ihre Keypace-Daten kopiert? – mmatloka

+0

@mmatloka nur meine Keypace-Daten. –

+0

Cassandra behält im System Keepspaces Informationen über Tabellenschemata. Versuchen Sie mit dem gleichen, vollständigen Datenverzeichnis (oder erstellen Sie ein Schema, bevor Sie Daten verschieben, verschieben Sie es jedoch in neu erstellte Verzeichnisse, die beim Erstellen des Schemas erstellt wurden). – mmatloka

Antwort

0

Dies erwies sich als Problem mit dem sich ändernden Zustand der Tabelle im Laufe der Zeit.

Da die Tabelle klein war, konnte ich die Daten mithilfe von COPY migrieren, um die Daten in CSV zu exportieren und dann in die neue Version zu importieren.

Werfen Sie einen Blick auf https://issues.apache.org/jira/browse/CASSANDRA-11806 für die Diskussion über eine andere Problemumgehung und einen kommenden Bugfix.