java - Accumulo 表扫描器在 Java 中静默失败

标签 java accumulo

我正在尝试使用 Java API 扫描整个 Accumulo 表。我已验证元信息全部正确(凭据、ZooKeeper 服务器、Accumlo 实例 ID、表名称)。此时我已经陷入了困境,所以任何建议都会受到赞赏。

累积版本

1.6.2

代码

借自accumulo read client .

// scan the whole table
System.out.println("=== whole table ===");
Scanner tableScanner;
try {
  tableScanner = conn.createScanner("geomesa3_records", new Authorizations());
  // conn is of type Connector
  // Connector and Scanner are implemented in org.apache.accumulo.core.client
  // See links below for additional info
} catch (TableNotFoundException ex) {
  throw new RuntimeException("table not found - was SimpleIngestClient run?");
}
System.out.println("-------------------------------------");

for(Map.Entry<Key, Value> kv : tableScanner) { // seemingly freezes here
  System.out.println("----------------- new row ---------------");
  System.out.println(kv.getKey().getRow() + " "
      + kv.getKey().getColumnFamily() + " "
      + kv.getKey().getColumnQualifier() + ": "
      + new String(kv.getValue().get()));
}
tableScanner.close();
System.out.println("-------------------------------------");
System.out.println("=== end table ===");

预期结果

=== whole table ===
-------------------------------------
----------------- new row ---------------
// table data
----------------- new row ---------------
// table data
----------------- new row ---------------
// table data
-------------------------------------
=== end table ===

实际结果

=== whole table ===
-------------------------------------

相关累积链接

Scanner API

Connector API used for createScanner

Scanner interface

最佳答案

我认为您可能需要在扫描仪上设置一个范围。要扫描整个表格,只需设置范围,如下所示:

scanner.setRange(new Range());

这个范围将匹配所有内容。具体来说,这个范围“从负无穷大到正无穷大”。基本上它匹配所有可能的键。

我使用类似的策略对我的一个表进行全部获取操作。

此外,请注意这种事情肯定会导致问题。如果表变大,则可能需要很长时间才能运行。就我而言,我从不期望表增长到超过几百个逻辑行,所以我认为它是安全的。

关于java - Accumulo 表扫描器在 Java 中静默失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31816012/

相关文章:

java - 初始化的ArrayList不显示

java - 插件开发的 Maven 依赖

java - 根据 Map 内 TreeSet 中的值范围返回键

geoserver - GeoMesa - 支持的数据存储之间的差异?

docker - Kubernetes中的Accumulo集群部署

java - 什么相当于 intellij 中的 eclipse 部署程序集 list 条目?

java - 如何终止从阻塞队列中检索

database-schema - 如何将关系模式转换为 Accumulo 模式?

java - Accumulo-batchscanner : one result per range

java - 启动 MiniAccumuloCluster 时出现 ZooKeeperBindException