简体   繁体   中英

NetworkTopologyStrategy on single cassandra node

I have created a keyspace in cassandra once using NetworkTopologyStrategy and next time using SimpleStrategy with the following syntax :

Keyspace definition:

CREATE KEYSPACE cw WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter16' : 1 };

CREATE KEYSPACE cw WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' : 1}

Output of bin/nodetool ring :

Datacenter: 16
==========
Address       Rack        Status State   Load            Owns                Token                                       

172.16.4.196  4           Up     Normal  35.92 KB        100.00%             0   

When i create one table in NetworkTopologyStrategy keyspace and do the select * query on the table. It returns the following error :

Unable to complete request: one or more nodes were unavailable

Whereas it works fine in SimpleStrategy keyspace why is it so? Can't we use the NetworkTopologyStrategy on single cassandra node cluster?

While everyone else is right, you are already using a different snitch as your data center name is '16'. In your keyspace definition, you have Datacenter: 16. That means data center name is actually '16'.

Try this:

CREATE KEYSPACE cw WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', '16' : 1 };

By default cassandra is configured to use SimpleSnitch. SimpleSnitch does not recognize datacenter and rack information, hence can use only SimpleStrategy. To Change the Snitch you have to edit following in cassandra.yaml

endpoint_snitch: CHANGE THIS TO WHATEVER YOU WANT

also you have to then change corresponding properties file to define datacenter and racks

You have to define a network-aware snitch in order to use NetworkTopologyStrategy . See this document for more information: http://docs.datastax.com/en/cassandra/2.1/cassandra/architecture/architectureSnitchPFSnitch_t.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM