ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Cassandraで cannot parse '何とか' as hex bytes の対処法1

2012-01-19 11:40:40 | そのほか
きのうのCassandraをたちあげてみるのつづき。

データをいれるためには、

1.キースペースを作成する(スキーマに相当するらしい)
2.カラムファミリーを作成する(テーブルに相当するらしい)
3.データをセットする

という3段階でできるようです。
やってみましょう。




■やってみると、cannot parse '何とか' as hex bytes

・まず、コマンドプロンプトを立ち上げ、
cd "C:¥Program Files¥Apache Software Foundation¥apache-cassandra-1.0.7¥bin"
cassandra.bat

(¥は、本当は半角 cdのあとのパスは、cassandraのbinがあるところ)
で、サーバー側を起動。



・別のコマンドプロンプトを立ち上げ

cd "C:¥Program Files¥Apache Software Foundation¥apache-cassandra-1.0.7¥bin"
cassandra-cli.bat

(¥は、本当は半角 cdのあとのパスは、cassandraのbinがあるところ)
で、クライアント側を起動。

[default@unknown]

と出てくるので、

connect localhost/9160;
create keyspace Keyspace1;
use Keyspace1;
create column family Standard2;
set Standard2['jsmith']['first'] = 'John';

(入力する内容だけを書いています。;を打つたびに、それなりの出力が表示されます)


と入力すると、


org.apache.cassandra.db.marshal.MarshalException: cannot parse 'first' as hex bytes

とエラー表示されます。

はじめに、コネクトして、
つぎに、Keyspace1というキースペースを作成
useでそのキースペースに入り(このへんMySQLと同じ)
さらに、Standard2という、カラムスペースを作って
値をセットしただけなのに、怒られました。

どうしましょう・・・




■対処法は2つ。

ここ

High Performance Cassandra Blog
Errata
http://www.jointhegrid.com/highperfcassandra/?page_id=34


に対処法が2つ書いてあります。

対処法1:ascii()でいれろ
対処法2:Create column familiesでUTF8Typeを指定する
     (リンク先は、アメリカなのでAsciiTypeになっている)

まず、対処法1でやってみましょう。




■対処法1:ascii()でいれろ→確かに入る・・・けどお・・

まあ、すなおに、対処法1をやってみましょう。


set Standard2[jsmith][ascii('first')] =ascii('John');


と入力すると、たしかに


Value inserted.
Elapsed time: 110 msec(s).


とか、表示されますが、このとき、


get Standard2[jsmith];


と入力すると、


=> (column=6669727374, value=John, timestamp=1326875173953000)
Returned 1 results.


と表示され、columnのfirstが、見えなくなって(16進になって)しまいます。
だめじゃん・・・

(対処法2につづく)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする