参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_schema_changes_c.html#concept_ds_rdc_lvr_gk
在Cassandra1.2及之后,大量的模式变化可以同时发生在一个集群中,而节点之间没有任何模式的分歧。例如,如果一个客户端设置一个列为integer而另一个客户端设置为text,一个或另一个动作会立马生效。哪一个动作会生效是不可预料的。
新模式解决方案的设计消除了模式的变化时,新的节点加入集群所造成的延迟。当节点加入群集时,它能立马接收到当前模式的变化。
处理不同的模式
在这种情况下,模式的分歧发生,检查并解决不同的模式,如下:
过程
1.使用命令行接口,运行DESCRIBE CLUSTER 命令
$ cassandra-cli -host localhost -port 9160
[default@unknown] DESCRIBE
cluster;
如果有节点出现了故障感知不到,你会收到如下提示信息:
[default@unknown] describe cluster;
Cluster Information:
Snitch: com.datastax.bdp.snitch.DseDelegateSnitch
Partitioner: org.apache.cassandra.dht.RandomPartitioner
Schema versions:
UNREACHABLE: [10.202.205.203, 10.80.207.102,
10.116.138.23]
2.重启出现故障的节点
3.重复操作步骤1和步骤2直到DESCRIBE 命令显示所有的节点使用同一个模式版本为止——在DESCRIBE的输出只出现了一个模式的版本。