【问题标题】:Cassandra and hector upgrade to 1.0 and unit testingCassandra 和 hector 升级到 1.0 和单元测试
【发布时间】:2011-12-26 13:38:36
【问题描述】:

我们一直在使用 Cassandra 0.7,由于 cassandra 1.0.0 的稳定版本已经发布,我们计划升级到它。它的风险很低,因为我们还没有生产。我们使用的是 hector 0.7-29,它有 testutils 包和一个 EmbeddedServerHelper 类,我们用来在所有单元测试中启动嵌入式服务器。

但是 hector 1.0-1 的升级版本(用于 cassandra 1.0.x)已从其核心发行版中删除了这个包(me.prettyprint.cassandra.testutils)。

我想知道使用新的 hector 1.0-1 api 客户端进行单元测试的计划。有没有办法再启动 cassandra 嵌入式服务器?

感谢您的帮助。

【问题讨论】:

    标签: cassandra hector


    【解决方案1】:

    有一个新的“测试”模块,其中包含 EmbeddedSchemaLoader 和 EmbeddedServerHelper。我们将它们从核心中取出,以便它们可以在 Hector 之外使用(因为该模块现在没有直接依赖于 hector)。

    https://github.com/rantav/hector/tree/master/test

    让我们知道一切是如何进行的。

    【讨论】:

    • 在修复了更多问题后,我以以下错误结束。我有 libthrift v 0.7.0 作为最新的依赖项。 16:33:29,531 错误 AbstractCassandraDaemon:354 - 启动期间遇到异常 java.lang.NoSuchMethodError: org.apache.thrift.server.TServer.(Lorg/apache/thrift/server/TServer$AbstractServerArgs;)
    • Cassandra 和 hector 都在 thrift 0.6.1 上 - 你很可能需要降级 thrift。
    • 我必须将 libthrift 0/5/0 包含在组 org.apache.cassandra.deps 中才能通过。由于 cassandra.yaml 不能有模式创建语句,加载模式的最佳方法是什么?我正在考虑为我们的测试复制 EmbeddedSchemaLoader 中的代码
    • 删除了 libthrift 0.5.0 依赖项,因为它适用于 0.6.1。谢谢内特
    • 如果你对 maven 真的很满意,我还建议 mojo.codehaus.org/cassandra-maven-plugin 看看 CQL jdbc-driver 以获得如何设置它的一个很好的例子:code.google.com/a/apache-extras.org/p/cassandra-jdbc
    猜你喜欢
    • 2023-04-02
    • 2014-08-03
    • 1970-01-01
    • 2022-06-27
    • 1970-01-01
    • 2013-09-07
    • 2015-05-06
    • 2012-09-06
    • 2018-01-12
    相关资源
    最近更新 更多