无法使用CQL连接到Cassandra 2.0.10

3
在服务器配置中,我已禁用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是thrift端口。我认为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\..\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

这是一段Python错误追踪信息,它指出了在与Cassandra数据存储系统进行连接时发生的错误。其中最后一行提示EOFError,可能是由于读取流时文件结束引起的错误。如果您需要更多帮助,请联系系统管理员或开发人员。
1个回答

2

我猜这意味着,即使cqlsh声称使用3.1.1版本,我仍然不能真正使用CQL3功能? - nilskp
你可以。cqlsh使用所谓的“cql over thrift”。 - Mikhail Stepura
我感到困惑。我在其他地方看到过,并且在Jira问题的标题中也提到,CQL3数据与thrift不兼容。 - nilskp
1
那么,解决方案是什么? - sirvon
1
嗯,新的Cassandra版本(v2.2)已经发布了: start_native_transport: true使用端口9042。而thrift rpc服务器默认是禁用的(start_rpc: false)。我还可以使用CQL 3.3 :D 此外,cqlsh默认使用端口9042连接到Cassandra。也就是说,你应该切换到Cassandra 2.2以充分发挥其功能。 - Melroy van den Berg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接