2012-07-20 5 views
2

dev (목적) 용 단일 노드 카산드라 인스턴스를 실행 중이고 정수 행을 삽입하려고합니다. 내 Keyspace와 columnfamily는 이미 Cassandra에서 만들어졌습니다.헥터 오류가있는 정수 삽입

저는 Cassandra 1.0과 Hector 1.0.5 (Jar 버전)를 사용하고 있습니다.

Cluster cluster = HFactory.getOrCreateCluster("Test Cluster", "10.40.14.93:9160"); 

Keyspace keyspaceOperator = HFactory.createKeyspace("mykeyspace", cluster) 

Mutator intM = HFactory.createMutator(keyspaceOperator, IntegerSerializer.get()); 

for each elem in my list { 

intM.insert(doc.document_id , 
      "mycolfamily", 
      me.prettyprint.hector.api.factory.HFactory.createColumn("numAdults", doc.numAdults)) 
} 

내 클라이언트에서 TimedOutException을 얻을하고 카산드라 로그에, 나는 다음과 같은 한 무리의 참조하십시오 다음과 같이 내 코드는

ERROR [MutationStage:357] 2012-07-20 08:15:02,106 AbstractCassandraDaemon.java (line 139) Fatal exception in thread Thread[MutationStage:357,5,main] 
java.lang.RuntimeException: java.lang.NumberFormatException: For input string: "" 
     at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1228) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:662) 
Caused by: java.lang.NumberFormatException: For input string: "" 
     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) 
     at java.lang.Long.parseLong(Long.java:410) 
     at java.lang.Long.parseLong(Long.java:468) 
     at org.apache.solr.schema.TrieField.createField(TrieField.java:508) 
     at org.apache.solr.schema.FieldType.createFields(FieldType.java:292) 
     at org.apache.solr.schema.SchemaField.createFields(SchemaField.java:106) 
     at com.datastax.bdp.cassandra.index.solr.SolrSecondaryIndex.addFieldToDocument(SolrSecondaryIndex.java:382) 
     at com.datastax.bdp.cassandra.index.solr.SolrSecondaryIndex.populateDocument(SolrSecondaryIndex.java:280) 
     at com.datastax.bdp.cassandra.index.solr.SolrSecondaryIndex.applyIndexUpdates(SolrSecondaryIndex.java:164) 
     at org.apache.cassandra.db.index.SecondaryIndexManager.applyIndexUpdates(SecondaryIndexManager.java:419) 
     at org.apache.cassandra.db.Table.apply(Table.java:448) 
     at org.apache.cassandra.db.RowMutation.apply(RowMutation.java:256) 
     at org.apache.cassandra.service.StorageProxy$6.runMayThrow(StorageProxy.java:415) 
     at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1224) 
     ... 3 more 
ERROR [MutationStage:357] 2012-07-20 08:15:02,106 AbstractCassandraDaemon.java (line 139) Fatal exception in thread Thread[MutationStage:357,5,main] 
java.lang.RuntimeException: java.lang.NumberFormatException: For input string: "" 
     at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1228) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:662) 
Caused by: java.lang.NumberFormatException: For input string: "" 
     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) 
     at java.lang.Long.parseLong(Long.java:410) 
     at java.lang.Long.parseLong(Long.java:468) 
     at org.apache.solr.schema.TrieField.createField(TrieField.java:508) 
     at org.apache.solr.schema.FieldType.createFields(FieldType.java:292) 
     at org.apache.solr.schema.SchemaField.createFields(SchemaField.java:106) 
     at com.datastax.bdp.cassandra.index.solr.SolrSecondaryIndex.addFieldToDocument(SolrSecondaryIndex.java:382) 
     at com.datastax.bdp.cassandra.index.solr.SolrSecondaryIndex.populateDocument(SolrSecondaryIndex.java:280) 
     at com.datastax.bdp.cassandra.index.solr.SolrSecondaryIndex.applyIndexUpdates(SolrSecondaryIndex.java:164) 
     at org.apache.cassandra.db.index.SecondaryIndexManager.applyIndexUpdates(SecondaryIndexManager.java:419) 
     at org.apache.cassandra.db.Table.apply(Table.java:448) 
     at org.apache.cassandra.db.RowMutation.apply(RowMutation.java:256) 
     at org.apache.cassandra.service.StorageProxy$6.runMayThrow(StorageProxy.java:415) 
     at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1224) 

} 

나는 Datastax 기업을 trialling하고을 (DSE) Cassandra, Hadoop, Solr 등을 패키지로 제공합니다. Solr 구성을 통해 Cassandra CF를 생성했습니다 (Solst 구성 및 스키마 xml을 Datastax 인스턴스에 게시하여 Keyspace 및 CF - DSE의 기능을 게시 할 수 있음).

도와주세요? 과 같이 ... 당신의 createColumn 호출에 명시 적으로 시리얼을 추가

+0

열 패밀리를 작성하는 데 사용한 쿼리로 질문을 업데이트 할 수 있습니까? 어딘가에 타입 불일치가있는 것 같습니다 –

답변

1

시도 :

me.prettyprint.hector.api.factory.HFactory.createColumn("numAdults", doc.numAdults, StringSerializer.get(), IntegerSerializer.get())) 

는 또한, 다른 주에, 나는 당신이 루프에서 삽입을하고있는 참조하십시오. 루프 내에서 intM.addInsertion을 수행 한 다음 intM.execute()가 완료되면보다 효율적입니다.

+0

안녕 유진 - 감사합니다. 이 시도했지만 불행히도, 나는 여전히 같은 오류가 발생하고 있습니다. 무엇이 잘못 될지 확실하지 않습니다. ( – Ameya