我正在使用hector在cassandra DB中插入值。我是Eclipse helios IDE和Cassandra 1.1.2版,在我的类路径中导入了以下jar。
我不会在这里遇到什么问题,无论是兼容性问题还是与代码混乱的问题。
我尝试使用不同版本的罐子,但没有运气。 以下是代码段。
请帮忙。
int count = 0;
StringSerializer ss = StringSerializer.get();
String cf = "TESTING";
CassandraHostConfigurator conf = new CassandraHostConfigurator("10.100.10.177:8160");
System.out.println("host configured..");
conf.setCassandraThriftSocketTimeout(40000);
conf.setExhaustedPolicy(ExhaustedPolicy.WHEN_EXHAUSTED_BLOCK);
conf.setRetryDownedHostsDelayInSeconds(5);
conf.setRetryDownedHostsQueueSize(128);
conf.setRetryDownedHosts(true);
conf.setLoadBalancingPolicy(new LeastActiveBalancingPolicy());
String key = Long.toString(System.currentTimeMillis());
Cluster cluster = HFactory.getOrCreateCluster("Test Cluster", conf);
Keyspace keyspace = HFactory.createKeyspace("Testing", cluster);
Mutator<String> mutator = HFactory.createMutator(keyspace, StringSerializer.get());
while (!"q".equals(new Scanner(System.in).next().toString())) {
try {
mutator.insert(key, cf, HFactory.createColumn("column_" + count, "v_" + count, ss, ss));
mutator.execute();
count++;
} catch (Exception e) {
e.printStackTrace();
}
}
这是我在没有循环的情况下插入单个值时得到的异常。
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.cassandra.thrift.Column.<init>(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;J)V
at me.prettyprint.cassandra.model.HColumnImpl.<init>(HColumnImpl.java:36)
at me.prettyprint.hector.api.factory.HFactory.createColumn(HFactory.java:477)
at me.prettyprint.hector.api.factory.HFactory.createStringColumn(HFactory.java:488)
at ExampleDaoV2.main(ExampleDaoV2.java:66)
答案 0 :(得分:1)
尝试使用不同于libthrift的其他thrift jar文件。 如果有效,请告诉我。