4

次の問題が発生したときに、cassandra のユーザー認証をセットアップしようとしていました。

まず、次のように更新しましcassandra.yamlた:

authenticator: PasswordAuthenticator

次に、replication_factor が 3 の system_auth キースペースを次のように作成しました。

CREATE KEYSPACE system_auth WITH REPLICATION =  { 'class' : 'SimpleStrategy', 'replication_factor' : 3};

次に、次のコマンドで cassandra を再実行します。

bin/cassandra

その後、次の手順でノードを修復しました (ただし、これが重要/必要な理由を理解しているかどうかはわかりません):

nodetool repair

これらの手順をすべて実行した後でも、cassandra/Java は次のように叫びます。

    Traceback (most recent call last):
  File "/home/tscobb/Documents/BM/apache-cassandra-2.0.5/bin/cqlsh", line 2044, in <module>
    main(*read_options(sys.argv[1:], os.environ))
  File "/home/tscobb/Documents/BM/apache-cassandra-2.0.5/bin/cqlsh", line 2030, in main
    display_float_precision=options.float_precision)
  File "/home/tscobb/Documents/BM/apache-cassandra-2.0.5/bin/cqlsh", line 480, in __init__
    cql_version=cqlver, transport=transport)
  File "/home/tscobb/Documents/BM/apache-cassandra-2.0.5/bin/../lib/cql-internal-only-1.4.1.zip/cql-1.4.1/cql/connection.py", line 143, in connect
  File "/home/tscobb/Documents/BM/apache-cassandra-2.0.5/bin/../lib/cql-internal-only-1.4.1.zip/cql-1.4.1/cql/connection.py", line 59, in __init__
  File "/home/tscobb/Documents/BM/apache-cassandra-2.0.5/bin/../lib/cql-internal-only-1.4.1.zip/cql-1.4.1/cql/thrifteries.py", line 157, in establish_connection
  File "/home/tscobb/Documents/BM/apache-cassandra-2.0.5/bin/../lib/cql-internal-only-1.4.1.zip/cql-1.4.1/cql/cassandra/Cassandra.py", line 465, in login
  File "/home/tscobb/Documents/BM/apache-cassandra-2.0.5/bin/../lib/cql-internal-only-1.4.1.zip/cql-1.4.1/cql/cassandra/Cassandra.py", line 486, in recv_login
cql.cassandra.ttypes.AuthenticationException: AuthenticationException(why='org.apache.cassandra.exceptions.UnavailableException: Cannot achieve consistency level QUORUM')

正直なところ、この時点では、どのように進めればよいかわかりません。誰かに何かアイデアがあれば、それは大歓迎です。

Ubuntu vm で cassandra 2.0.5 を実行しています。それがまったく役立つかどうかはわかりません。

また、実行すると:

nodetool status

以下が出てきます。

nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address Load    Tokens  Owns   Host ID                              Rack
UN  127.0.0.1  1.57 MB  256     100.0%  37ae1d4c-0df5-43d2-9593-4603ac68c34a  rack1
4

1 に答える 1

8
'class' : 'SimpleStrategy', 'replication_factor' : 3

クラスタにノードが 1 つしかないため、レプリケーション係数を 3 に設定すると問題が発生します。Cassandra でのレプリケーションについて説明している記事はこちらです。ざっと読んでみるべきです。特に 1 つの部分がここに適用されます。

レプリケーション係数がノード数を超えると、書き込みは拒否されますが、必要な一貫性レベルが満たされている限り、読み取りは処理されます。

Cannot achieve consistency level QUORUM

Cassandra は「クォーラム」を (replication_factor / 2) + 1 として計算します。したがって、レプリケーション ファクターが 3 の場合、整合性レベルを満たすには 2 つのノードを実行する必要があります。

基本的に、レプリケーション係数を 1 に戻せば問題ありません。

于 2014-03-06T15:46:19.140 に答える