在啓動和添加新節點到我的卡桑德拉羣集配置爲使用身份驗證,我得到了下面的堆棧跟蹤:正確的方式來擴展卡桑德拉集羣使用驗證
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用戶列表中尋求支持。 –