尝试从phpcassa实例化column_family对象时出现Cassandra_NotFound异常

时间:2011-09-13 13:35:17

标签: php cassandra phpcassa

我在Windows 7机器(64位)中设置了一个Cassandra实例0.7。

cassandra服务器已启动并正在运行,并且已成功侦听thrift客户端。我已经通过成功创建自己的示例键空间和列族来测试实例。

现在,我必须从我的PHP脚本连接到这个Cassandra实例。我尝试使用 thobbs \ phpcassa

我遇到了麻烦。在安装中,它提到了针对UNIX / Linux系统的'make,build'的步骤,但没有提到Windows。

我不知道接下来要做什么,我试图复制我的htdocs文件夹(apache)中的phpcassa文件夹,并创建了一个测试文件cassandra_test.php,内容如下:

<?php
ini_set('display_errors',1);
require_once('phpcassa/connection.php');
require_once('phpcassa/columnfamily.php');

$servers = array("localhost:9160");
$pool = new ConnectionPool("demo", $servers);

$column_family = new ColumnFamily($pool, 'user');


?>

演示是我从命令提示符创建的示例键空间。另外,我在演示密钥空间中创建了一个示例column_family user

在浏览器中执行此脚本会产生以下异常:

Fatal error: Uncaught exception 'cassandra_NotFoundException' in C:\Program Files   (x86)\Apache Software Foundation\Apache2.2\htdocs\phpcassa\columnfamily.php:198 
Stack trace: #0 C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\cassandra_test.php(10): 
ColumnFamily->__construct(Object(ConnectionPool), 'user') #1 {main} thrown in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\phpcassa\columnfamily.php
on line 198 

我认为phpcassa无法找到我当地的cassandra实例。怎么检查?

另外

$pool = new ConnectionPool("demo", $servers);

没有给出任何错误/警告。所以,我完全不确定这个例外的根本原因是什么? 我是cassandra和PHPcassa的新手。真的很抱歉,如果这个问题听起来很琐碎。

1 个答案:

答案 0 :(得分:2)

此异常表示它能够连接到您的Cassandra实例(可能没有任何问题),但键空间“demo”中的ColumnFamily“user”不存在。

尝试启动cassandra-cli并验证“show keyspaces”;列出正确键空间内的列族。另外请注意,这里的名称区分大小写,如果这会产生影响。