在启动和添加新节点到我的卡桑德拉群集配置为使用身份验证,我得到了下面的堆栈跟踪:正确的方式来扩展卡桑德拉集群使用验证
java.lang.RuntimeException: org.apache.cassandra.exceptions.AlreadyExistsException: Cannot add already existing column family "credentials" to keyspace "system_auth"
at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:242)
at org.apache.cassandra.auth.PasswordAuthenticator.process(PasswordAuthenticator.java:266)
at org.apache.cassandra.auth.PasswordAuthenticator.setupCredentialsTable(PasswordAuthenticator.java:214)
at org.apache.cassandra.auth.PasswordAuthenticator.setup(PasswordAuthenticator.java:171)
at org.apache.cassandra.auth.Auth.setup(Auth.java:132)
at org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:830)
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:583)
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:482)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:345)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:462)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:552)
Caused by: org.apache.cassandra.exceptions.AlreadyExistsException: Cannot add already existing column family "credentials" to keyspace "system_auth"
at org.apache.cassandra.service.MigrationManager.announceNewColumnFamily(MigrationManager.java:209)
at org.apache.cassandra.cql3.statements.CreateTableStatement.announceMigration(CreateTableStatement.java:114)
at org.apache.cassandra.cql3.statements.SchemaAlteringStatement.execute(SchemaAlteringStatement.java:71)
at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:188)
at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:222)
at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:234)
... 10 more
这是有道理的,因为之前的一个节点已经创建了它。
考虑到system_auth
列系列已经存在,在线新建节点的正确方法是什么?另外,随着集群大小的增加,如何增加system_auth
表的复制因子?
这个问题被标记为'卡桑德拉-2.0'所以如果哟你看[相关的源代码](http://grepcode.com/file/repo1.maven.org/maven2/org.apache.cassandra/cassandra-all/2.0.0/org/apache/cassandra/auth/ PasswordAuthenticator.java#208)它似乎在尝试创建它之前是否缺少列族(元数据== null)。您可能需要从Cassandra用户列表中寻求支持。 –