致命错误:在 /home/dev001/projects/Thrift/gen-php/cassandraTest.ph


Fatal error: Class 'CassandraClient' not found in /home/dev001/projects/Thrift/gen-php/cassandraTest.php

我已经安装了Cassandra和apache Thrift。我创建了一个PHP测试页面来测试它。当我运行时,它返回以下错误。

致命错误:在第 15 行的/home/dev001/projects/Thrift/gen-php/cassandraTest.php 中找不到类 'CassandraClient'

当我通过 cassandra-cli 检查 cassandra 时,它显示以下错误。

power@power-desktop:/home/dev001$ cassandra-cli
org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused  
    at org.apache.thrift.transport.TSocket.open(TSocket.java:183)
at org.apache.thrift.transport.TFramedTransport.open(TFramedTransport.java:81)
    at org.apache.cassandra.cli.CliMain.connect(CliMain.java:79)
    at org.apache.cassandra.cli.CliMain.main(CliMain.java:255)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at  java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at org.apache.thrift.transport.TSocket.open(TSocket.java:178)
... 3 more
Exception connecting to 127.0.0.1/9160. Reason: Connection refused.
Welcome to Cassandra CLI version 1.1.0~rc1
Type 'help;' or '?' for help.
Type 'quit;' or 'exit;' to quit.
[default@unknown] 

请告诉我为什么会这样?

似乎您没有让 cassandra 侦听正确的 IP/端口。 运行netstat -an以查看它是否正在侦听端口 9160。

话虽如此:

  • Cassandra 不使用 php
  • 带有PHP的Cassandra - 调用cassandra-test.php我得到"调用未定义的方法CassandraClient::batch_insert()"

总之,大众的共识是,你应该尽可能避免使用原始节俭,并使用维护的客户端库之一:哪个PHP客户端库与Cassandra一起使用?

在您的

终端类型中:

# service cassandra start

在使用Cassandra之前。

这将启动 cassandra deamon。 在向 Cassandra 发送命令之前必须运行

我遇到了同样的错误但是当我通过cassandra_installation_dir/bin/cassandra启动Cassandra,然后"cassandra_installation_dir/bin/Cassandra-cli--host 192.168.1.90"时,我能够登录。如果可行,请尝试这种方式。