首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hector插入整数时出错

Hector插入整数时出错
EN

Stack Overflow用户
提问于 2012-07-20 15:21:33
回答 1查看 417关注 0票数 2

我正在运行一个单节点Cassandra实例(用于开发目的),并希望在其中插入一个整数行。我的Keyspace和columnfamily已经在Cassandra上创建了。

我使用的是Cassandra 1.0和Hector 1.0.5 (Jar版本)。我的代码如下:

代码语言:javascript
复制
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,在Cassandra日志中,我看到了一堆以下内容:

代码语言:javascript
复制
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)

}

我正在试用打包了Cassandra、Hadoop、Solr等的Datastax Enterprise (DSE)。我已经通过Solr配置创建了我的Cassandra CF (您可以将Solr配置和模式xmls发布到Datastax实例以创建Keyspace和CF -这是DSE的一个功能)

有没有人能帮帮忙?

EN

回答 1

Stack Overflow用户

发布于 2012-07-21 05:26:35

尝试向createColumn call...like添加显式序列化程序,以便:

代码语言:javascript
复制
me.prettyprint.hector.api.factory.HFactory.createColumn("numAdults", doc.numAdults, StringSerializer.get(), IntegerSerializer.get()))

另外,我看到你在一个循环中做插入。在循环中执行intM.addInsertion,然后在完成后执行intM.execute()会更有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11574705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档