1

Cassandra データベース(0.6.8)を使用するテスト クラウド サーバー (Rackspace 上の Ubuntu 10.10) をセットアップしました。cassandra-cli 基本クライアントを使用して、サーバー内からもクラウド外部のコンピューターからも問題なく接続できます。サンプル データを作成して取得しました。

次に、クラウド サーバーと外部コンピューターに phpcassa をインストールしました。

接続をテストするための非常に単純な php プログラムを作成しました。

<?php
$GLOBALS['THRIFT_ROOT'] = dirname(__FILE__) . '/include/thrift/';
require_once $GLOBALS['THRIFT_ROOT'].'/packages/cassandra/Cassandra.php';
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TSocket.php';
require_once $GLOBALS['THRIFT_ROOT'].'/protocol/TBinaryProtocol.php';
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TFramedTransport.php';
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TBufferedTransport.php';

include_once(dirname(__FILE__) . '/include/phpcassa.php');
include_once(dirname(__FILE__) . '/include/uuid.php');

echo 'phpcassa test01<br /><br />';
CassandraConn::add_node('184.106.97.245', 9160);

$users = new CassandraCF('Keyspace1', 'Standard2');

try {
    $res = $users->get('jsmith');
    print_r($res);
} catch (Exception $e) {
    print CassandraConn::$last_error;
}

echo 'End.'
?>

バッファリングされたトランスポートを使用しています。

サーバーに接続してデータを読み取ることができます (LAMP もインストールしています)。

phpcassa test01
Array ( [age] => 42 [first] => John [last] => Smith ) 
End.

ただし、常に例外が発生するため、外部からではありません。

phpcassa test01
TException: TSocket: Could not connect to 184.106.97.245:9160 (Operation timed out [60])
End.

これは私の storage-conf.xml ファイルです:

<Storage>
<ClusterName>Test Cluster</ClusterName>
<AutoBootstrap>false</AutoBootstrap>
<HintedHandoffEnabled>true</HintedHandoffEnabled>
<IndexInterval>128</IndexInterval>
<Keyspaces>
<Keyspace Name="Keyspace1">
  <ColumnFamily Name="Standard1" CompareWith="BytesType"
                KeysCached="1000"
                RowsCached="100"
                RowCacheSavePeriodInSeconds="0"
                KeyCacheSavePeriodInSeconds="3600"/>
  <ColumnFamily Name="Standard2" 
                CompareWith="UTF8Type"
                KeysCached="100%"/>
  <ColumnFamily Name="StandardByUUID1" CompareWith="TimeUUIDType" />
  <ColumnFamily Name="Super1"
                ColumnType="Super"
                CompareWith="BytesType"
                CompareSubcolumnsWith="BytesType" />
  <ColumnFamily Name="Super2"
                ColumnType="Super"
                CompareWith="UTF8Type"
                CompareSubcolumnsWith="UTF8Type"
                RowsCached="10000"
                KeysCached="50%"
                Comment="A column family with supercolumns, whose column and subcolumn names are UTF8 strings"/>
  <ReplicaPlacementStrategy>org.apache.cassandra.locator.RackUnawareStrategy</ReplicaPlacementStrategy>
  <ReplicationFactor>1</ReplicationFactor>
  <EndPointSnitch>org.apache.cassandra.locator.EndPointSnitch</EndPointSnitch>        
</Keyspace>
</Keyspaces>
<Authenticator>org.apache.cassandra.auth.AllowAllAuthenticator</Authenticator>  
<Partitioner>org.apache.cassandra.dht.RandomPartitioner</Partitioner>
<InitialToken></InitialToken>
<SavedCachesDirectory>/var/lib/cassandra/saved_caches</SavedCachesDirectory>
<CommitLogDirectory>/var/lib/cassandra/commitlog</CommitLogDirectory>
<DataFileDirectories>
  <DataFileDirectory>/var/lib/cassandra/data</DataFileDirectory>
</DataFileDirectories>
<Seeds>
  <Seed>184.106.97.245</Seed>
</Seeds>
<RpcTimeoutInMillis>10000</RpcTimeoutInMillis>
<CommitLogRotationThresholdInMB>128</CommitLogRotationThresholdInMB>
<ListenAddress>184.106.97.245</ListenAddress>
<StoragePort>7000</StoragePort>
<ThriftAddress>184.106.97.245</ThriftAddress>
<ThriftPort>9160</ThriftPort>
<ThriftFramedTransport>false</ThriftFramedTransport>
<DiskAccessMode>auto</DiskAccessMode>
<RowWarningThresholdInMB>64</RowWarningThresholdInMB>
<SlicedBufferSizeInKB>64</SlicedBufferSizeInKB>
<FlushDataBufferSizeInMB>32</FlushDataBufferSizeInMB>
<FlushIndexBufferSizeInMB>8</FlushIndexBufferSizeInMB>
<ColumnIndexSizeInKB>64</ColumnIndexSizeInKB>
<MemtableThroughputInMB>64</MemtableThroughputInMB>
<BinaryMemtableThroughputInMB>256</BinaryMemtableThroughputInMB>
<MemtableOperationsInMillions>0.3</MemtableOperationsInMillions>
<MemtableFlushAfterMinutes>60</MemtableFlushAfterMinutes>
<ConcurrentReads>8</ConcurrentReads>
<ConcurrentWrites>32</ConcurrentWrites>
<CommitLogSync>periodic</CommitLogSync>
<CommitLogSyncPeriodInMS>10000</CommitLogSyncPeriodInMS>
<GCGraceSeconds>864000</GCGraceSeconds>
<DoConsistencyChecksBoolean>true</DoConsistencyChecksBoolean>
</Storage>

Rackspace のサポートは、ファイアウォールの設定を変更することを提案しましたが、私にはファイアウォールがありません:

root@Oahu:~# iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

どんな助けでも大歓迎です!!!

乾杯、ルジェロ

4

1 に答える 1

0

http://wiki.apache.org/cassandra/Cas​​sandraCliで (最初に) ノードにアクセスします。

于 2011-11-23T20:24:33.197 に答える