盲目跟随http://wiki.apache.org/cassandra/CassandraCli,有人可以解释一下吗?
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.
[default@unknown] use Keyspace1;
Authenticated to keyspace: Keyspace1
[default@Keyspace1] create column family User with comparator = UTF8Type;
5ef4bad0-fb2a-11e0-0000-242d50cf1ffd
Waiting for schema agreement...
... schemas agree across the cluster
[default@Keyspace1] set User['jsmith']['first'] = 'John';
org.apache.cassandra.db.marshal.MarshalException: cannot parse 'jsmith' as hex bytes
[default@Keyspace1]
Run Code Online (Sandbox Code Playgroud)
Kar*_*k S 21
在Cassandra CLI中运行任何set命令之前,始终建议执行以下操作:
assume <column_family> keys as utf8;
assume <column_family> comparator as utf8;
assume <column_family> validator as utf8;
Run Code Online (Sandbox Code Playgroud)
这将确保您理解所设置和列出的所有内容
PS:这只适用于Cassandra的新人
这是针对旧版本的 Cassandra。默认情况下,密钥现在被视为十六进制字节,因此您需要:
set User[utf8('jsmith')]['first'] = 'John';
Run Code Online (Sandbox Code Playgroud)
或者做:
assume User keys as utf8;
set User['jsmith']['first'] = 'John';
Run Code Online (Sandbox Code Playgroud)
或者,正如文档中的注释所述:
注意:从 Cassandra 0.8 开始,我们需要为列族声明一个 key_validation_class:
update column family User with key_validation_class=UTF8Type;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3328 次 |
| 最近记录: |