2012-02-06 6 views
11

私はApache Cassandraバージョン0.7.6をjavaとHectorで勉強しています。クラスタとキースペースを作成し、作成したこのキースペースに列を挿入しようとしました。Apache Cassandra + Hector + Javaのキースペースに行を挿入

例を見てみると、keyspaceはSqlデータベースのデータベースと同等であり、Column Familysはテーブルと同等であることが分かりました。これを知って私は簡単な例の構造を作成しようとしました。

Cluster tutorialCluster = HFactory.getOrCreateCluster("TutorialCluster", 
      "127.0.0.1:9160"); 
ConfigurableConsistencyLevel ccl = new ConfigurableConsistencyLevel(); 

ccl.setDefaultReadConsistencyLevel(HConsistencyLevel.ONE); 

Keyspace tutorialKeyspace = HFactory.createKeyspace("Tutorial", tutorialCluster, 
      ccl); 
Mutator<String> mutator = HFactory.createMutator(tutorialKeyspace, 
      stringSerializer); 

mutator.addInsertion("CA Burlingame", "StateCity", HFactory.createColumn(650L, "37.57x122.34", longSerializer, stringSerializer)); 

MutationResult mr = mutator.execute(); 

しかし、これを実行しようとすると、cassandraが起動しても例外が返されます。

Exception in thread "main" me.prettyprint.hector.api.exceptions.HInvalidRequestException: InvalidRequestException(why:Keyspace Tutorial does not exist) 
at me.prettyprint.cassandra.connection.HThriftClient.getCassandra(HThriftClient.java:70) 
at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:226) 

私はすでに "チュートリアル"キースペースを作成し、ミューテータで使用しました。

誰かが間違っている可能性があることを伝えることができますか?事前

答えて

6

HFactoryでcreateKeyspace()の呼び出しで

おかげで、ローカルでの使用のためにヘクター鍵空間オブジェクトを作成するためのものですが、それは実際にはカサンドラで鍵空間を作成しません。そのためには、実際のクラスターオブジェクトで 'addKeyspace()'と 'addColumnFamily'メソッドを使用します。

https://github.com/rantav/hector/blob/master/core/src/main/java/me/prettyprint/hector/api/Cluster.java#L117

関連する問題