Vitalii Honta
Vitalii Honta

Reputation: 317

Cassandra - unable to connect via cqlsh

I have a problem in connecting to cassandra via clqsh. I've deployed a cluster consisting of 3 nodes on CentOS7. I could see that nodes are connecting with each other. nodetool status output is bellow:

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens       Owns (effective)        Host ID     Rack
UN  ${SEED2} 226.47 KiB     1            60,3%                 <hash>     rack1
UN  ${SEED}  190.77 KiB     1            50,9%                 <hash>     rack1
UN  ${IP}    157.62 KiB     1            88,7%                 <hash>    rack1

But connecting via cqlsh doesn't work. I've tried connection to localhost and to node IP. Here is the output of cqlsh command:

[root@node02 default.conf]# cqlsh
Connection error: ('Unable to connect to any servers', {'127.0.0.1': 
error(111, "Tried connecting to [('127.0.0.1', 9042)]. Last error: 
Connection refused")})
[root@node02 default.conf]# cqlsh ${IP}
connection error: ('Unable to connect to any servers', {'${IP}': 
ConnectionShutdown('Connection to ${IP} was closed',)})

It's not such obvious for me why 'Connection to ... was closed' is printed if connecting to rpc_address but 'Connectiong refused' when connecting to the localhost. Does anyone know the cause of such problem? cassandra.yaml file is bellow:

# Cassandra storage config YAML

cluster_name: '${NAME}'
hinted_handoff_enabled: true
authenticator: org.apache.cassandra.auth.AllowAllAuthenticator
data_file_directories:
    - /var/lib/cassandra/data
commitlog_directory: /var/lib/cassandra/commitlog
hints_directory: /var/lib/cassandra/hints

key_cache_size_in_mb: 2    
key_cache_save_period: 14400    
row_cache_size_in_mb: 0    
row_cache_save_period: 0

saved_caches_directory: /var/lib/cassandra/saved_caches    
commitlog_sync: periodic
commitlog_sync_period_in_ms: 10000

concurrent_reads: 32
concurrent_writes: 32

storage_port: 7000
ssl_storage_port: 7001

rpc_port: 9042
start_rpc: true
rpc_keepalive: true    
rpc_server_type: sync

request_scheduler: org.apache.cassandra.scheduler.NoScheduler
index_interval: 128

listen_address: ${IP}
rpc_address: ${IP}
seed_provider:
    - class_name: org.apache.cassandra.locator.SimpleSeedProvider
      parameters:
          - seeds: ${IP},${SEED}

Upvotes: 0

Views: 2197

Answers (1)

Simon Fontana Oscarsson
Simon Fontana Oscarsson

Reputation: 2124

Found the issue. You set rpc_port to 9042. I think you're confusing rpc with native (cql). Rpc is the old interface that is deprecated in later releases. I would recommend setting start_rpc to false and set rpc_port back to it's default value: 9160.

Upvotes: 1

Related Questions