3

認証を使用するように構成された Cassandra クラスターに新しいノードを開始して追加すると、次のスタック トレースが表示されます。

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

これは、前のノードの 1 つが既に作成しているため、理にかなっています。

system_auth列ファミリーが既に存在する場合、新しいノードをオンラインにするための正しいアプローチは何ですか? system_authさらに、クラスターのサイズが大きくなるにつれて、テーブルのレプリケーション係数を増やすにはどうすればよいでしょうか?

4

1 に答える 1

1

そのエラーに固有のものを見つけることはできませんでしたが、正しく述べているように警告である可能性がありますが、既に存在しているはずです。ノードが起動してクラスターに正常に参加したと仮定しています。

質問に答えるには:

system_auth 列ファミリーが既に存在する場合、新しいノードをオンラインにする正しいアプローチは何ですか?

さらに、クラスターのサイズが大きくなるにつれて、system_auth テーブルのレプリケーション ファクターを増やすにはどうすればよいでしょうか?

この回答に複数のリンクを投稿することはできませんでしたが、ノードを追加するための Datastax ドキュメントを検索すると、認証を使用するかどうかに関係なくノードを追加するための一般的な手順が得られます。唯一の違いは、カサンドラ.yaml

レプリケーションを使用した system_auth キースペースの構成については、次のドキュメントで説明されています。

http://www.datastax.com/documentation/datastax_enterprise/4.5/datastax_enterprise/sec/secConfSysAuthKeyspRepl.html

于 2014-12-31T12:38:25.923 に答える