gpt4 book ai didi

java - Cassandra java.lang.IllegalArgumentException : text while getMetaData

转载 作者:行者123 更新时间:2023-12-01 10:16:37 27 4
gpt4 key购买 nike

我在收集元数据时遇到 cassandra 异常。异常(exception):

Exception in thread "main" java.lang.IllegalArgumentException: text
at com.datastax.driver.core.ColumnMetadata$Raw$Kind.fromStringV3(ColumnMetadata.java:160)
at com.datastax.driver.core.ColumnMetadata$Raw.fromRow(ColumnMetadata.java:188)
at com.datastax.driver.core.SchemaParser.groupByKeyspaceAndCf(SchemaParser.java:442)
at com.datastax.driver.core.SchemaParser$2.refresh(SchemaParser.java:255)
at com.datastax.driver.core.ControlConnection.refreshSchema(ControlConnection.java:323)
at com.datastax.driver.core.ControlConnection.tryConnect(ControlConnection.java:264)
at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:187)
at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:75)
at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1269)
at com.datastax.driver.core.Cluster.getMetadata(Cluster.java:338)
at com.pentaquin.core.database.driver.CassandraDriver.connect(CassandraDriver.java:70)
at com.pentaquin.core.database.driver.CassandraDriver.createFromConfig(CassandraDriver.java:136)
at com.pentaquin.login.server.LoginServerMain.main(LoginServerMain.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

CassandraDriver 第 70 行中的代码:

this.metadata = this.cluster.getMetadata();

CassandraDriver方法代码:

/*
* Cassandra Configuration
*/
Cluster.Builder builder = Cluster.builder();

Logger.getRootLogger().info(configuration.listServerContactPoints().size() + " cassandra contact points registered.");

//add all server contact points
for (ServerContactPoint serverContactPoint : configuration.listServerContactPoints()) {
String ip = serverContactPoint.getIp();
int port = serverContactPoint.getPort();

//add cassandra contact point
builder.addContactPoint(ip).withPort(port);
}

//use credentials
if (!configuration.getUser().equals("") && !configuration.getPassword().equals("")) {
builder.withCredentials(configuration.getUser(), configuration.getPassword());
}

if (configuration.listServerContactPoints().size() > 1) {
DCAwareRoundRobinPolicy dcAwareRoundRobinPolicy = DCAwareRoundRobinPolicy.builder().allowRemoteDCsForLocalConsistencyLevel()/*.withLocalDc(configuration.getLocalDatacenter())*/.build();

//TODO: add load balancing support here

//because client connects to many servers, client can use load balancing
/*builder.withLoadBalancingPolicy(
new TokenAwarePolicy(dcAwareRoundRobinPolicy));*/
}

Logger.getRootLogger().info("connect to cassandra database.");

//connect to cluster
this.cluster = builder.build();

this.metadata = cluster.getMetadata();
Logger.getRootLogger().debug("Cassandra Cluster Name: " + this.metadata.getClusterName());

/**
* connect to cassandra database
*
* @link http://www.tutorialspoint.com/cassandra/cassandra_data_model.htm
*/
this.keyspace = configuration.getDatabase();
this.session = this.cluster.connect();

if (!this.keyspace.equals("")) {
//keyspace support
try {
this.session.execute("USE " + this.keyspace);
} catch (InvalidQueryException e) {
//create keyspace first
this.session.execute("CREATE KEYSPACE " + this.keyspace + " WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3};");

this.session.execute("USE " + this.keyspace);
}
}

为什么会抛出异常?这是什么意思?谢谢!

编辑:添加代码该方法负责连接到 cassandra 集群并设置 key 空间。因此有一个配置文件解析为对象配置。

最佳答案

从行号看来,您使用的是 3.0.0-alpha2 或更早版本的驱动程序。当时Cassandra是3.0.0-beta1,之后元数据格式发生了一些变化。

尝试将驱动程序升级到3.0.0,它可以正确处理所有Cassandra版本。

关于java - Cassandra java.lang.IllegalArgumentException : text while getMetaData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35855094/

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