gpt4 book ai didi

java - Cassandra-Hector InvalidRequestException

转载 作者:行者123 更新时间:2023-12-02 04:49:44 24 4
gpt4 key购买 nike

我正在尝试根据我发现的内容创建 Cassandra 数据库 here .

但无论我做什么,我都会不断收到此错误

Caused by: me.prettyprint.hector.api.exceptions.HInvalidRequestException: InvalidRequestException(why:Keyspace names must be case-insensitively unique ("myKeyspace" conflicts with "myKeyspace")

这是我的代码:

public static void setSerializedMap(int index,String serializedVector){
Cluster cluster = HFactory.getOrCreateCluster("TestCluster", "localhost:9160");

ColumnFamilyDefinition columnFamilyDefinition=HFactory.createColumnFamilyDefinition("myKeyspace", "user", ComparatorType.BYTESTYPE);
KeyspaceDefinition keyspaceDefinition=HFactory.createKeyspaceDefinition("myKeyspace",ThriftKsDef.DEF_STRATEGY_CLASS,3,Arrays.asList(columnFamilyDefinition));
cluster.addKeyspace(keyspaceDefinition,true);

Keyspace keyspace=HFactory.createKeyspace("Keyspace", cluster);

Mutator<String> mutator = HFactory.createMutator(keyspace, me.prettyprint.cassandra.serializers.StringSerializer.get());
try{
mutator.addInsertion("cluster", "user", HFactory.createStringColumn("cluster-" + index, serializedVector));
}catch(HectorException e){
e.printStackTrace();
}

}

关于如何解决这个问题有什么建议吗?

最佳答案

在尝试创建“myKeyspace”之前检查它是否存在,如果它已经存在,则无法创建它。

if (cluster.describeKeyspace("myKeyspace") == null) { ...

如果在创建时从多个位置/节点调用,它可能会在代码中创建竞争条件。如果您可以升级,这个问题可以在 CQL 中解决。

如果使用 CQL,您可以使用“CREATE KEYSPACE IF NOT EXISTS blarg WITH ...”。尽管如果使用 cql 可能需要考虑从 hector 迁移到为其设计的库之一。

关于java - Cassandra-Hector InvalidRequestException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29339312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com