1

I am running Cassandra 3.7 on an Ubuntu Server 16.04 LTS 32bit machine that I'm re-purposing from storage. I managed to properly configure the JVM to operate within the 32 bit environment. Nodetool status works fine. But I am having a hard time getting CQLSH to work. I end up with the following error:

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

Obviously there is some version conflict here but I'm confused as to why and how to fix it. I had a previous 3.0 install of Cassandra that I configured cassanda-env.sh to properly start the JVM. I kept that .sh file when I installed up to 3.7. I updated cassandra.yaml with the new install.

So my question here is: does Cassandra 3.7 support CQL 3.4.2? If not then why does it appear to ship with it? If it does not, what do I need to do to downgrade to CQL 3.4.0? If it does support it and my configuration files are wrong then what's the error and how do I fix it? Or, is there another configuration that I'm completely missing here?

Here are my current configurations:

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

Any assistance greatly appreciated.

EDIT: Figured out, with the help of the first answer, that I had an older instance of the server running. I couldn't get it to start with the correct version...so then I deleted cassandra from /etc/init.d and now I can't get the debian package to automatically register the service.

EDIT2: Downloaded cassandra script from git repo and now cassandra will start again after rebooting. Now cassandra -v shows me:

3.7

Which what I wanted to see and solved my issue pertaining to the version conflict. But now unfortunately I see a new error:

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

This problem is addressed in: cqlsh connection error: 'ref() does not take keyword arguments'

Cœur
  • 37,241
  • 25
  • 195
  • 267
cenveoanalyst
  • 77
  • 1
  • 2
  • 9

1 Answers1

1

It looks like you're running the 3.7 cqlsh against an older server instance. First, be sure you are actually running Cassandra 3.7 (you can probably just check the jar path or look in the logs).

If you want to connect using the advertised cql_version there is a command line option: https://github.com/apache/cassandra/blob/cassandra-3.7/bin/cqlsh.py#L222

select release_version, cql_version from system.local;

(or just look at the cqlsh welcome header) to see what these parameters are.

Adam Holmberg
  • 7,245
  • 3
  • 30
  • 53
  • Thank you very much for your reply. I was looking in the logs and it appears you are correct. Whatever instance is running doesn't support 3.4.0. I looked into cqlsh.py and that is the correct version. Now what I'm confused about it that I did sudo apt-get remove on cassandra before I installed the new version from the repository... – cenveoanalyst Jul 29 '16 at 17:05
  • Okay, nodetool version gives me 3.0.8. How do I clear that out? – cenveoanalyst Jul 29 '16 at 17:18
  • There is nothing to clear out. It sounds like you have the old version running. What upgrade procedure are you following? Have you shutdown? Did the new package install correctly? Is the init script updated and pointing to the new install? – Adam Holmberg Jul 29 '16 at 18:36
  • I hadn't shutdown until right about now but not before I deleted the cassandra.service from /etc/init.d and now I think I've broken it further since installing cassandra again doesn't update the services. For upgrading and did sudo apt-get remove cassandra then sudo apt-get install cassandra after adding the repository for the newest version to my package list. – cenveoanalyst Jul 29 '16 at 20:06