【问题标题】:Cassandra_NotFound Exception when trying to instantiate a column_family object from phpcassa尝试从 phpcassa 实例化 column_family 对象时出现 Cassandra_NotFound 异常
【发布时间】:2011-09-13 13:35:17
【问题描述】:

我已经在我的 Windows 7 机器(64 位)中设置了 Cassandra 实例 0.7。

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

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

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

不知道下一步该做什么,我尝试将 phpcassa 文件夹复制到我的 htdocs 文件夹(apache)中,并创建了一个包含以下内容的测试文件 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');


?>

demo 是我从命令提示符创建的示例键空间。另外,我在演示键空间中创建了一个示例 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 的新手。如果这个问题听起来很琐碎,真的很抱歉。

【问题讨论】:

    标签: php cassandra phpcassa


    【解决方案1】:

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

    尝试启动 cassandra-cli 并验证“显示密钥空间;”列出正确键空间内的列族。另请注意,此处的名称区分大小写,如果有区别的话。

    【讨论】:

    • 感谢@Tyler 的澄清,这实际上是一个命名问题,我几乎在谷歌上搜索了与 phpcassa 相关的所有内容。我的 columnfamily 名称为 User 所以这是我的错误,尽管是一个愚蠢的错误。
    猜你喜欢
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多