keyspace是应用程序数据的容器,相当于关系数据库中的schema.它用来分组column family.一个集群中的每一个应用只有一个keyspace.
创建keyspace时候可以指定replication_factor,从而表示有几个副本:
创建方法:
(方法1:使用opscenter中的"DATA MODELING")
也可以使用命令行 cassandra-cli:
- CREATE KEYSPACE Charles_Learn_Cassandra WITH placement_strategy='SimpleStrategy' AND strategy_options={replication_factor:2};
结果显示:SchemaDisagreementException,这是因为cluster在多个节点之间没同步。
我们敲入 describe cluster:
从这里我们可以发现,我们的cluster有2个版本,192.168.129,39和192.168.129.35是一个版本,而192.168.129.34是新加的节点,是另外一个版本,我们只要将他们同步就可以了。
我们到 192.168.129.34上Cassandra的data 目录中的system keyspace,我们是~/datastax/cassandra-data/system
我们删除所有的Schema开头的和Migration开头的表:
然后重启Cassandra 实例。
现在终于发现这3个节点schema一致了。
于是,现在可以正确创建keyspace了:
我们到opscenter中去检验,果然刚才才创建的名字叫Charles_Learn_Cassandra的keyspace被看到了。
另外,在cassandra-cli中使用命令 show keyspaces 可以看到所有的key space。如下,我们刚创建的Charles_Learn_Cassandra被显示了:
转载于:https://blog.51cto.com/supercharles888/865989