【问题标题】:Is CQL JDBC 1.2.5 compatible with cassandra-thrift-2.0.1 and cassandra-clientutil-2.0.1?CQL JDBC 1.2.5 是否与 cassandra-thrift-2.0.1 和 cassandra-clientutil-2.0.1 兼容?
【发布时间】:2013-10-03 06:46:55
【问题描述】:

刚刚进入 Cassandra。设置 2.0.1 版本,服务器运行正常,cqlsh 连接并正确执行各种命令,所以我知道基础设施没问题。

我有一个小型 Java 测试程序。我在 OS X 10.8.3 (Darwin) 上使用最新的 Java 7 JDK:

java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)

因为 Cassandra 2.0.1 需要 Java 7。我从 jdbc wiki 页面中所述的这些库开始:

cassandra-jdbc-1.2.5.jar
apache-cassandra-thrift-2.0.1.jar
apache-cassandra-clientutil-2.0.1.jar

在调用此代码时

String driverClass = "org.apache.cassandra.cql.jdbc.CassandraDriver";
Class.forName( driverClass ).newInstance();

// mykeyspace was created in the setup example   
java.sql.Connection conn = DriverManager.getConnection("jdbc:cassandra://localhost:9160/mykeyspace");

getConnection() 为 org/apache/thrift/TEnum 抛出 java.lang.NoClassDefFoundError。没问题——我在 libthrift-0.9.1.jar 中找到了它,并将它添加到类路径中。然后我得到 org.apache.cassandra.cql.jdbc.AbstractJdbcType 的 java.lang.NoClassDefFoundError。我为 AbstractJdbcType grep cassandra-jdbc-1.2.5.jar 但找不到。我 grep 为 Abstract,我看到了

org/apache/cassandra/cql/jdbc/AbstractConnection.class
org/apache/cassandra/cql/jdbc/AbstractResultSet.class
org/apache/cassandra/cql/jdbc/AbstractStatement.class

我下载了旧版本的 JDBC 库(1.1.2 和 1.2.1),但它们也没有看到包含 org.apache.cassandra.cql.jdbc.AbstractJdbcType。

搜索 org.apache.cassandra.cql.jdbc.AbstractJdbcType 显示它在 cassandra-all/1.0.0 版本中?也许?

我下载了 1.2.5 的源代码并重新构建了它,但由于 getSchema() 在 ManagedConnection.java 中没有被覆盖,所以它无法编译:

class ManagedConnection extends AbstractConnection implements Connection
...

getSchema() 是 Java 7 java.sql.Connection 中的新功能。

我想我混合了错误版本的 jars、JDK 或者可能是 2.0.1 并且 jdbc 1.2.5 不兼容...?任何人都可以命名正确的 jar 集以使用 JDBC 和 v2.0.1 吗?

【问题讨论】:

    标签: java jdbc cassandra libs


    【解决方案1】:

    不,不是。

    我检查了 wiki 问题日志。其他人报告说 JDBC 1.2.5 不适用于 2.0。
    此外,似乎很多精力都集中在 Datastax 本机驱动程序及其之上的(最终)JDBC 层上。在这项新工作中,人们对更高的性能和删除 Thrift 都很感兴趣。这似乎很可能是 JDBC 连接到 Cassandra 2.0+ 的未来轨迹

    【讨论】:

      【解决方案2】:

      我已回滚到 Cassandra apache-cassandra-1.2.18-bin.tar.gz。仍然面临同样的问题。我尝试将 apache-cassandra-1.2.18/lib 下的所有 jar *.jar 放入类库中。问题已经解决了。包含一些缺少的库后问题可能会消失。

      我没时间,不过你可以试着把lib一个一个放到/lib下,测试一下需要哪一个来解决问题。

      文柏康,戴夫 manpakhong@hotmail.com

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-16
        • 2019-08-16
        • 2013-10-17
        • 2013-11-01
        • 2013-05-25
        • 2011-02-26
        • 2013-04-08
        • 1970-01-01
        相关资源
        最近更新 更多