当我遇到以下问题时,我试图为 cassandra 设置用户身份验证。
首先我更新了 cassandra.yaml
和:
authenticator: PasswordAuthenticator
然后创建 system_auth key 空间,其 replication_factor 为 3 为:
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 虚拟机中运行 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
最佳答案
'class' : 'SimpleStrategy', 'replication_factor' : 3
由于您的集群中只有一个节点,因此将复制因子设置为 3 将是您的问题。这是一个 article that describes replication in Cassandra .你应该快速通读一遍。一个部分特别适用于这里:
When replication factor exceeds the number of nodes, writes are rejected, but reads are served as long as the desired consistency level can be met.
Cannot achieve consistency level QUORUM
Cassandra 将“Quorum”计算为 (replication_factor/2) + 1。因此,如果复制因子为 3,则需要运行 2 个节点才能满足一致性级别。
基本上,将您的复制因子设置回 1,您应该没问题。
关于cassandra - 试图登录到 cassandra 的控制台 (cqlsh) 并且它拒绝了我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22217946/