2011-10-20 11 views
5

ブラインドhttp://wiki.apache.org/cassandra/CassandraCliに続き、誰かがこれを説明できますか?Cassandra CLIチュートリアルの切り取りと貼り付けが機能しないのはなぜですか?

aaron-mac:apache-cassandra-1.0.0 aaron$ bin/cassandra-cli -host localhost -port 9160 
Connected to: "Test Cluster" on localhost/9160 
Welcome to the Cassandra CLI. 

Type 'help;' or '?' for help. 
Type 'quit;' or 'exit;' to quit. 

[[email protected]] use Keyspace1; 
Authenticated to keyspace: Keyspace1 

[[email protected]] create column family User with comparator = UTF8Type; 
5ef4bad0-fb2a-11e0-0000-242d50cf1ffd 
Waiting for schema agreement... 
... schemas agree across the cluster 
[[email protected]] set User['jsmith']['first'] = 'John'; 
org.apache.cassandra.db.marshal.MarshalException: cannot parse 'jsmith' as hex bytes 
[[email protected]] 

答えて

4

これは、カッサンドラの古いバージョン用です。キーは、今あなたが必要なので、デフォルトで進バイトとして扱われます。

set User[utf8('jsmith')]['first'] = 'John'; 

かの操作を行います。

assume User keys as utf8; 
set User['jsmith']['first'] = 'John'; 

または、ドキュメント内のノートが言うように:

注:カサンドラのとおり0.8の場合、列ファミリのkey_validation_classを宣言する必要があります。

update column family User with key_validation_class=UTF8Type; 
+0

Hmmm。私は今朝カサンドラ1.0を手に入れたと思った。私がチェックします。 –

+0

aaron-macに解凍されたtarball:apache-cassandra-1.0.0、fwiw。 –

+0

私はTheodoreの答えの例(感謝!)を使って、これをさらに強調するためにwikiページを更新しました。 – DNA

21

Cassandra Cでsetコマンドを実行する前にLIは、次の操作を実行するために常に賢明です:

assume <column_family> keys as utf8; 
assume <column_family> comparator as utf8; 
assume <column_family> validator as utf8; 

これは、設定はすべて、リストが

PSを理解されるようになります:これはカサンドラ

+0

カサンドラバージョン> = 2.0 – CodeGroover

1
set User['jsmith'][utf8('first')] = utf8('John'); 

への新規参入のためでありますsetコマンドについてわからない場合は、help set;と入力すると完全なドキュメントが表示されます。

+0

utf8( 'myvalue')で検証を使用して実際に働いた。 – Adelin

関連する問題