问题
I'm trying to add a single node to an already existing cluster called ClusterA. Prior to bootstrapping this node, it was running a single node cassandra cluster called "Test" with an older version 0.7.4. ClusterA is running 0.7.5 and I've upgraded the node to be added to 0.7.5 as well. I configured the yaml properly, but when I run Cassandra I get spammed with the following:
INFO 20:04:24,262 Logging initialized
INFO 20:04:24,275 Heap size: 5156896768/5156896768
INFO 20:04:24,276 JNA not found. Native methods will be disabled.
INFO 20:04:24,284 Loading settings from file:/usr/local/bin/apache-cassandra-0.7.5/conf/cassandra.yaml
INFO 20:04:24,380 DiskAccessMode 'auto' determined to be mmap, indexAccessMode is mmap
INFO 20:04:24,511 Creating new commitlog segment /var/lib/cassandra/commitlog/CommitLog-1306267464511.log
INFO 20:04:24,525 Couldn't detect any schema definitions in local storage.
INFO 20:04:24,525 Found table data in data directories. Consider using JMX to call org.apache.cassandra.service.StorageService.loadSchemaFromYaml().
INFO 20:04:24,535 No commitlog files found; skipping replay
INFO 20:04:24,553 Upgrading to 0.7. Purging hints if there are any. Old hints will be snapshotted.
INFO 20:04:24,556 Cassandra version: 0.7.5
INFO 20:04:24,556 Thrift API version: 19.4.0
INFO 20:04:24,556 Loading persisted ring state
INFO 20:04:24,558 Starting up server gossip
INFO 20:04:24,588 Enqueuing flush of Memtable-LocationInfo@1048095360(233 bytes, 4 operations)
INFO 20:04:24,589 Writing Memtable-LocationInfo@1048095360(233 bytes, 4 operations)
INFO 20:04:24,794 Completed flushing /var/lib/cassandra/data/system/LocationInfo-f-1-Data.db (341 bytes)
INFO 20:04:24,822 Joining: getting load information
INFO 20:04:24,823 Sleeping 90000 ms to wait for load information...
WARN 20:04:24,885 ClusterName mismatch from /10.44.2.58 Test !=ClusterA
WARN 20:04:24,886 ClusterName mismatch from /10.44.2.58 Test !=ClusterA
WARN 20:04:24,886 ClusterName mismatch from /10.44.2.58 Test !=ClusterA
WARN 20:04:24,886 ClusterName mismatch from /10.44.2.58 Test !=ClusterA
WARN 20:04:24,887 ClusterName mismatch from /10.44.2.58 Test !=ClusterA
This IP does not exist anywhere in the new yaml. It's an old config I tried implementing some time ago, but I'm not trying to cluster with this ip at all. I tried deleting all the storage, db files, and old configs, but it still detects an old seed IP somehow.
I find it weird that this gets logged when I confirmed that the data directory is empty.
Found table data in data directories...
Can anyone tell me how this is still coming up during start up? What do I need to change/remove/delete for this IP to go away?
Thanks.
回答1:
See http://wiki.apache.org/cassandra/FAQ#clustername_mismatch , which says:
"To prevent operator errors, Cassandra stores the name of the cluster in its system table. If you need to rename a cluster for some reason, it is safe to remove system/LocationInfo* after forcing a compaction on all ColumnFamilies (with the old cluster name) if you've specified the node's token in the config file, or if you don't care about preserving the node's token (for instance in single node clusters.) "
回答2:
Try using the cassandra nodetool to disable gossip to this(unwanted) node.
- Go to cassandra/bin directory
- Say "nodetool -h ip_creating_issue disablegossip"
try using other options of the nodetool like "decommission"
disable gossip worked fine for me.
来源:https://stackoverflow.com/questions/6116852/cassandra-clustername-mismatch