【问题标题】:Benchmark Time it takes HBase to Flush a Newly Written TableHBase 刷新新写入的表所需的基准时间
【发布时间】:2015-09-29 03:23:44
【问题描述】:

我正在尝试确定在 HBase 表上使用列族压缩的写入性能损失。但是,用于启动刷新 (admin.flush(tableName)) 的 API 是异步、非阻塞操作。如何确定将一批 Put 刷新到磁盘需要多长时间?

更新:我目前的目标是 HBase 0.94.2,所以http://archive.cloudera.com/cdh4/cdh/4/hbase-0.94.2-cdh4.2.0/apidocs/org/apache/hadoop/hbase/client/HBaseAdmin.html#flush%28String%29 确认 admin.flush 是异步的。

【问题讨论】:

    标签: hbase benchmarking


    【解决方案1】:

    admin.flush(tableNameOrRegionName)同步操作而非异步。看here
    您可以简单地使用time 命令来了解您的 PUT 操作所花费的时间,或者使用 java - 使用 System.nanoTime()

    【讨论】:

    【解决方案2】:

    通过调用 flush,你会强制 HBase 刷新 memstore,这最终会导致性能不佳。

    您为什么不能直接 grep Region Servers 日志来查看刷新 memstore 需要多长时间? cat hbase-regionserver*.log | grep "已完成 memstore 刷新"

    您将获得以 MB 为单位刷新的大小及其所用时间。

    【讨论】:

    • 这不是应用程序,而是杂项。绩效评估。是否可以通过 Java API 获取特定表的 memstore 刷新信息?
    猜你喜欢
    • 2019-06-22
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 2012-11-22
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多