2016-07-29 40 views
1

Ich benutze Cassandra 3.7 auf einem Ubuntu Server 16.04 LTS 32-Bit-Rechner, den ich aus dem Speicher neu verwerfe. Ich habe es geschafft, die JVM richtig zu konfigurieren, um innerhalb der 32-Bit-Umgebung zu arbeiten. Nodetool-Status funktioniert einwandfrei. Aber es fällt mir schwer, CQLSH zur Arbeit zu bringen. Ich schließe mit dem folgenden Fehler auf:CQLSH Protocoll Fehler von scheinbaren Versionskonflikten

('Unable to connect to any servers', {'127.0.0.1': ProtocolError("cql_version '3.4.2' is not supported by remote (w/ native protocol). Supported versions: [u'3.4.0']",)}) 

Offensichtlich gibt es einige hier Versionskonflikt, aber ich bin verwirrt, warum und wie es zu beheben. Ich hatte eine vorherige 3.0 Installation von Cassandra, die ich cassanda-env.sh konfigurierte, um die JVM richtig zu starten. Ich habe diese .sh-Datei behalten, wenn ich bis zu 3.7 installiert habe. Ich habe cassandra.yaml mit der neuen Installation aktualisiert.

Also meine Frage hier ist: Unterstützt Cassandra 3.7 CQL 3.4.2? Wenn nicht, warum scheint es damit zu versenden? Wenn nicht, was muss ich tun, um auf CQL 3.4.0 herunterzustufen? Wenn es es unterstützt und meine Konfigurationsdateien falsch sind, was ist dann der Fehler und wie behebe ich es? Oder gibt es eine andere Konfiguration, die ich hier komplett vermisse?

Hier sind meine aktuellen Konfigurationen:

cassandra-env.sh: https://www.dropbox.com/s/dcs99hgry5behqd/cassandra-env.sh?dl=0 cassandra.yaml: https://www.dropbox.com/s/boi8bh7gin0390f/cassandra.yaml?dl=0

Jede Hilfe sehr geschätzt.

EDIT: Ich habe mit Hilfe der ersten Antwort herausgefunden, dass ich eine ältere Instanz des Servers hatte. Ich konnte es nicht mit der korrekten Version beginnen ... also habe ich Cassandra aus /etc/init.d gelöscht und kann nun das Debian-Paket nicht mehr dazu bringen, den Dienst automatisch zu registrieren.

EDIT2: Heruntergeladene Cassandra Skript von Git Repo und jetzt Cassandra wird nach dem Neustart neu gestartet. Jetzt cassandra -v zeigt mir:

3.7 

Was, was ich sehen wollte und löste mein Problem im Zusammenhang mit der Version Konflikt. Aber jetzt leider sehe ich einen neuen Fehler:

Connection error: ('Unable to connect to any servers', {'127.0.0.1': TypeError('ref() does not take keyword arguments',)}) 

Dieses Problem in angesprochen wird: cqlsh connection error: 'ref() does not take keyword arguments'

Antwort

0

Es sieht aus wie Sie die 3.7 cqlsh gegen eine ältere Serverinstanz ausführen. Stellen Sie zuerst sicher, dass Sie Cassandra 3.7 ausführen (Sie können wahrscheinlich nur den Jar-Pfad überprüfen oder in den Protokollen nachschauen).

Wenn Sie sich mit dem beworbenen cql_version verbinden ist eine Befehlszeilenoption: https://github.com/apache/cassandra/blob/cassandra-3.7/bin/cqlsh.py#L222

select release_version, cql_version from system.local; 

(oder schauen Sie in dem cqlsh willkommen Header), um zu sehen, was diese Parameter sind.

+0

Vielen Dank für Ihre Antwort. Ich habe in den Logs nachgesehen und es scheint, dass Sie Recht haben. Welche Instanz gerade ausgeführt wird, unterstützt 3.4.0 nicht. Ich habe in cqlsh.py geschaut und das ist die korrekte Version. Nun, was ich darüber verwirrt bin, dass ich sudo apt-get remove auf cassandra habe, bevor ich die neue Version aus dem Repository installiert habe ... – cenveoanalyst

+0

Okay, nodetool Version gibt mir 3.0.8. Wie lösche ich das? – cenveoanalyst

+0

Es gibt nichts zu klären. Es klingt, als ob du die alte Version laufen hast. Welche Upgrade-Prozedur folgen Sie? Hast du heruntergefahren? Wurde das neue Paket korrekt installiert? Wird das Init-Skript aktualisiert und verweist es auf die neue Installation? –