【问题标题】:How to find out the number of entries or size of table in the Accumulo?如何找出Accumulo中的条目数或表格大小?
【发布时间】:2015-02-25 12:20:48
【问题描述】:

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

【问题讨论】:

    标签: accumulo


    【解决方案1】:

    首先,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,所以它们使用起来有点粗糙,并且可能会随着版本的变化而变化。如果您希望通过普通的 Instance 或 Connector 方法看到这些 API,请在 project's JIRA 实例上打开一个问题!

    【讨论】:

      【解决方案2】:

      您需要以编程方式进行吗?如果没有,有多种方法可以做到这一点。最简单的方法是访问端口50095 上的Accumulo 监控页面。如果你没有大量数据,你可以从命令行简单地做

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-09-17
        • 1970-01-01
        • 2010-09-11
        • 2013-04-12
        • 2021-01-23
        • 2021-09-02
        • 2014-07-31
        相关资源
        最近更新 更多