1

Windows 7 マシン (64 ビット) に Cassandra インスタンス 0.7 をセットアップしました。

cassandra サーバーが稼働中で、thrift クライアントを正常にリッスンしています。独自のサンプル キースペースと列ファミリを正常に作成して、インスタンスをテストしました。

次に、PHP スクリプトからこの Cassandra インスタンスに接続する必要があります。thobbs\phpcassaを使ってみました。

ここで困った。インストールでは、UNIX/Linux システムの「make,build」の手順について言及されていますが、Windows については何も言及されていません。

次に何をすべきかわからないので、(apache の) htdocs フォルダー内に 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');


?>

demoは、コマンド プロンプトから作成したサンプル キースペースです。また、サンプルの column_familyユーザーをデモ キースペースに作成しました。

ブラウザでこのスクリプトを実行すると、次の例外が発生します。

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 の初心者です。

4

1 に答える 1

2

この例外は、Cassandra インスタンスに (おそらく問題なく) 接続できたが、キースペース "demo" に ColumnFamily "user" が存在しないことを示します。

cassandra-cli を起動してみて、「show keyspaces;」を確認してください。正しいキースペース内の列ファミリーをリストします。また、違いがある場合は、ここで名前の大文字と小文字が区別されることに注意してください。

于 2011-09-14T02:18:23.847 に答える