cassandra - 试图登录到 cassandra 的控制台 (cqlsh) 并且它拒绝了我

标签 cassandra cql cassandra-2.0 cqlsh

当我遇到以下问题时,我试图为 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/

相关文章:

database - Apache Cassandra 数据库的安全副本

amazon-web-services - 如何重启Cassandra EC2实例?

apache-spark - Spark join 导致列 ID 歧义错误

java - 如何修复格式错误的 POM : Unrecognised tag: 'groupId' ?

java - 使用 Play Framework 更新 CQL Cassandra

cassandra - 通过Shell脚本执行CQL?

python - cassandra 增加了 uwsgi 服务器中的操作超时

Cassandra 使用聚合函数,然后按该聚合排序

cassandra - Cassandra 3.0更新了SSTable格式

java - 如何检查 java 中的 cassandra 表中是否存在列?