【问题标题】:Cannot connect with CQL to Cassandra 2.0.10无法使用 CQL 连接到 Cassandra 2.0.10
【发布时间】:2014-12-04 17:57:02
【问题描述】:

在服务器配置中,我禁用了 thrift (start_rpc: false),因为这可能是旧版。服务器启动正常:

INFO 12:23:09,658 Starting listening for CQL clients on localhost/127.0.0.1:9042... INFO 12:23:09,668 Not starting RPC server as requested. Use JMX (StorageService->startRPCServer()) or nodetool (enablethrift) to start it

如果我随后尝试启动 CQL,则会收到以下错误:

C:\Program Files\DataStax Community\apache-cassandra\bin> .\cqlsh.bat Connection error: Could not connect to localhost:9160

端口 9160 是节俭端口。我假设 CQL 应该在本机格式上运行。

如果我尝试强制端口:

C:\Program Files\DataStax Community\apache-cassandra\bin> .\cqlsh.bat localhost 9042

我明白了:

Traceback (most recent call last): File "C:\Program Files\DataStax Community\apache-cassandra\bin\..\..\apache-cassandra\bin\cqlsh", line 2092, in <module> main(*read_options(sys.argv[1:], os.environ)) File "C:\Program Files\DataStax Community\apache-cassandra\bin\..\..\apache-cassandra\bin\cqlsh", line 2075, in main single_statement=options.execute) File "C:\Program Files\DataStax Community\apache-cassandra\bin\..\..\apache-cassandra\bin\cqlsh", line 490, in __init__ password=password, cql_version=cqlver, transport=transport) File "C:\Program Files\DataStax Community\apache-cassandra\bin\..\lib\cql-internal-only-1.4.1.zip\cql-1.4.1\cql\connection.py", line 143, in connect File "C:\Program Files\DataStax Community\apache-cassandra\bin\..\lib\cql-internal-only-1.4.1.zip\cql-1.4.1\cql\connection.py", line 59, in __init__ File "C:\Program Files\DataStax Community\apache-cassandra\bin\..\lib\cql-internal-only-1.4.1.zip\cql-1.4.1\cql\thrifteries.py", line 159, in establish_connection File "C:\Program Files\DataStax Community\apache-cassandra\bin\..\lib\cql-internal-only-1.4.1.zip\cql-1.4.1\cql\cassandra\Cassandra.py", line 1265, in describe_version File "C:\Program Files\DataStax Community\apache-cassandra\bin\..\lib\cql-internal-only-1.4.1.zip\cql-1.4.1\cql\cassandra\Cassandra.py", line 1275, in recv_describe_version File "C:\Program Files\DataStax Community\apache-cassandra\bin\..\lib\thrift-python-internal-only-0.9.1.zip\thrift\protocol\TBinaryProtocol.py", line 126, in readMessageBegin File "C:\Program Files\DataStax Community\apache-cassandra\bin\..\lib\thrift-python-internal-only-0.9.1.zip\thrift\protocol\TBinaryProtocol.py", line 206, in readI32 File "C:\Program Files\DataStax Community\apache-cassandra\bin\..\lib\thrift-python-internal-only-0.9.1.zip\thrift\transport\TTransport.py", line 63, in readAll EOFError

【问题讨论】:

    标签: cassandra cql cassandra-2.0 cql3 datastax


    【解决方案1】:

    Cassandra 2.0.x 的 cqlsh 使用 Thrift 与服务器通信。

    https://issues.apache.org/jira/browse/CASSANDRA-6307

    【讨论】:

    • 我认为这意味着即使 cqlsh 声称使用 3.1.1 版本,我也不能真正使用 CQL3 功能?
    • 你可以。 cqlsh 使用所谓的“cql over thrift”
    • 我很困惑。我在其他地方看到过,这是 Jira 问题的标题,CQL3 数据与 thrift 不兼容。
    • 那么解决办法是什么?
    • 好吧,新的 Cassandra 版本 (v2.2):start_native_transport: true 使用端口 9042。默认情况下禁用 thrift rpc 服务器 (start_rpc: false)。我可以使用 CQL 3.3 :D 而且 cqlsh 默认使用端口 9042 连接到 Cassandra。这意味着,您应该切换到 Cassandra 2.2 以获取 Cassandra 的全部功能。
    猜你喜欢
    • 2020-11-22
    • 2019-06-29
    • 2016-02-14
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 2016-04-11
    • 2017-12-26
    相关资源
    最近更新 更多