如何找出Accumulo中的条目数或表的大小

  • 本文关键字:何找出 Accumulo accumulo
  • 更新时间 :
  • 英文 :


我已将数据插入accumulo。但是我怎么知道桌子的确切数目呢?是否有任何方法或API可以读取条目数的累积表大小?

首先,Accumulo在活动摄取过程中不知道表的确切大小——这只是一个近似值。我认为没有任何公共的API方法可以获得这些信息,尽管有一些内部方法可以调用。以下内容应该有效:

ClientContext context = new ClientContext(instance, credentials, clientConfiguration);
MasterClientService.Iface client = null;
MasterMonitorInfo mmi = null;
while (null == mmi) {
  try {
    client = MasterClient.getConnection(context);
    if (client != null) {
      mmi = client.getMasterStats(Tracer.traceInfo(), context.rpcCreds())
    }
  } finally {
    if (null != client) {
      MasterClient.close(client);
    }
  }
}
for (Entry<String,TableInfo> table : mmi.getTableMap().entrySet()) {
  System.out.println(table.getKey() + "=>" + (table.getValue().recs + table.getValue().recsInMemory));
}

这与Accumulo监视器获取这些值的方式类似。因为这些都是内部API,所以使用起来有点粗糙,可能会在不同的版本中发生变化。如果你想看到这些API通过普通的实例或连接器方法公开,请在项目的JIRA实例上打开一个问题!

你需要用程序来做吗?如果没有,有多种方法可以做到这一点。最简单的方法是转到端口50095上的Accumulo监视器页面。如果你没有大量的数据,从命令行你可以简单地进行

accumulo shell -u username -p password -e "scan -t foo -np" | wc -l

相关内容

  • 没有找到相关文章

最新更新