2016-07-29 1 views
1

Je lance Cassandra 3.7 sur une machine Ubuntu Server 16.04 LTS 32 bits que je réutilise depuis le stockage. J'ai réussi à configurer correctement la JVM pour fonctionner dans l'environnement 32 bits. Le statut de Nodetool fonctionne bien. Mais j'ai du mal à faire fonctionner la CQLSH. Je termine avec l'erreur suivante:Erreur de protocole CQLSH procédant de conflits de version apparente

('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']",)}) 

Manifestement, il y a un conflit de version ici mais je suis confus pour savoir pourquoi et comment y remédier. J'ai eu une installation 3.0 précédente de Cassandra que j'ai configurée cassanda-env.sh pour démarrer correctement la JVM. J'ai gardé ce fichier .sh quand j'ai installé jusqu'à 3.7. J'ai mis à jour cassandra.yaml avec la nouvelle installation.

Donc ma question est la suivante: est-ce que Cassandra 3.7 supporte CQL 3.4.2? Si non, pourquoi semble-t-il expédier avec? Si ce n'est pas le cas, que dois-je faire pour rétrograder vers CQL 3.4.0? Si elle le supporte et que mes fichiers de configuration sont faux alors quelle est l'erreur et comment puis-je la réparer? Ou, y a-t-il une autre configuration qui me manque complètement ici?

Voici mes configurations actuelles:

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

Toute aide grandement appréciée.

EDIT: J'ai découvert, à l'aide de la première réponse, que j'avais une ancienne instance du serveur en cours d'exécution. Je n'ai pas pu commencer avec la version correcte ... alors j'ai supprimé cassandra de /etc/init.d et maintenant je ne peux pas obtenir le paquet debian pour enregistrer automatiquement le service.

EDIT2: Le script cassandra a été téléchargé depuis git repo et maintenant cassandra redémarre après le redémarrage. Maintenant cassandra -v me montre:

3.7 

Ce que je voulais voir et résolu mon problème concernant le conflit de version. Mais maintenant, malheureusement, je vois une nouvelle erreur:

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

Ce problème est traité dans: cqlsh connection error: 'ref() does not take keyword arguments'

Répondre

0

On dirait que vous utilisez le 3.7 cqlsh contre une instance de serveur plus ancien. D'abord, assurez-vous que vous exécutez réellement Cassandra 3.7 (vous pouvez probablement juste vérifier le chemin de jar ou regarder dans les logs).

Si vous souhaitez vous connecter en utilisant la publicité cql_version il y a une option de ligne de commande: https://github.com/apache/cassandra/blob/cassandra-3.7/bin/cqlsh.py#L222

select release_version, cql_version from system.local; 

(ou regarder juste au cqlsh tête de bienvenue) pour voir ce que ces paramètres sont.

+0

Merci beaucoup pour votre réponse. Je regardais dans les journaux et il semble que vous avez raison. Quelle que soit l'instance en cours d'exécution ne supporte pas 3.4.0. J'ai regardé dans cqlsh.py et c'est la bonne version. Maintenant ce que je suis confus à ce sujet que j'ai fait sudo apt-get supprimer sur cassandra avant d'installer la nouvelle version du référentiel ... – cenveoanalyst

+0

D'accord, la version nodetool me donne 3.0.8. Comment puis-je effacer cela? – cenveoanalyst

+0

Il n'y a rien à effacer. On dirait que vous avez l'ancienne version en cours d'exécution. Quelle procédure de mise à niveau suivez-vous? Avez-vous fermé? Le nouveau paquet a-t-il été installé correctement? Le script d'initialisation est-il mis à jour et pointe vers la nouvelle installation? –