java - Hector querySuperColumn 与 countSubColumns 不匹配

标签 java cassandra hector

我得到了一个 super 列族:

Logger {
    superKey : {
        nameKey : {name1:val1, name2:val2, ..., name8945:val8945}
    }
}

代码如下:

    ThriftSuperCfTemplate<String, String, String> stringKeyTemplate = 
            new ThriftSuperCfTemplate<String, String, String>
            (keyspace, LOGGER_COLUMN_FAMILY, 
            StringSerializer.get(), StringSerializer.get(), 
            StringSerializer.get());

    int count = stringKeyTemplate.countSubColumns(NAME_KEY, SUPER_KEY); //1

    SuperCfResult<String, String, String> nameRow = 
            stringKeyTemplate.querySuperColumn(NAME_KEY, SUPER_KEY);

    Collection<String> names =  nameRow.getColumnNames(); //2

    Assert.assertTrue(names.size()==count); //3

我想做的是从 nameKey 列族中获取所有列名,但它只返回前 7 个名称 {name1, name2,..., name7}(第 2 行)但是count 返回 8945(第 1 行)。断言在第 3 行失败...

最佳答案

我无法在 GH 的当前提示中重现此内容: https://github.com/rantav/hector/commit/1aa93e78257e86dfc73390cb9c4db52d8ed29a69

我认为 1.0.1 版和 master 版之间没有太大变化。如果您可以尝试从主干更新到最新版本并查看问题是否“消失”,我将进一步调查。另外,你运行的是什么版本的 Cassandra?这只是在周末出现,但这可能不是原因:https://issues.apache.org/jira/browse/CASSANDRA-3446

服务器上有没有错误日志?将 StorageProxy 的日志记录级别设置为调试,并确保通过网络传输的一切看起来都是正确的(调整日志记录级别的详细信息:http://www.datastax.com/docs/1.0/configuration/logging_options)。

关于java - Hector querySuperColumn 与 countSubColumns 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8036724/

相关文章:

cassandra - 如果发生读取超时,如何在 Cassandra 中重试

database-design - 正确存储构建 "Last seen Products"

运行 hector 示例代码时出现 java.lang.ClassNotFoundException : org. apache.xbean.finder.archive.Archive 错误

java.net.ConnectException :connection timed out: connect? 异常

Java,为什么 collections.sort() 仍然适用于非比较器类型的参数?

Java Spring 依赖项

java - Spring - 从使用 UTF-8 的文件加载

database - Datastax 阿斯特拉 : max columns number and lists size

api - Hector API - 创建列族 - 关键验证类

cassandra - 如何删除 Cassandra 行键