【问题标题】:How to increase the perfomance of Thrift client Scanner queries to Hbase如何提高 Thrift 客户端 Scanner 查询到 Hbase 的性能
【发布时间】:2014-01-18 11:43:40
【问题描述】:

我使用 c# 的 thrift 接口从 Hbase 获取实时数据。我的问题是,过滤查询花费了太多时间来响应来自 hbase 的响应。示例代码如下:

string TableName="testtable";

Dictionary<byte[], byte[]> attributes = new Dictionary<byte[], byte[]>(); 
TScan scanFilter = new TScan();

scanFilter.FilterString = ToByteArray("((RowFilter(<=,'binary:1053_1371222000')) AND (RowFilter(>=,'binary:1053_1371217740'))) OR (RowFilter(<=,'binary:1055_1371222000')) AND (RowFilter(>=,'binary:1055_1371217740')))");

var scanner = _client.scannerOpenWithScan(ToByteArray(TableName), scanFilter, attributes);

for (var entry = _client.scannerGet(scanner); entry.Count > 0; entry = _client.scannerGet(scanner))
{

            foreach (var rowResult in entry)
            {
        string rowkey = Encoding.UTF8.GetString(rowResult.Row);
                Console.Write("{0} => ", rowkey);

    }

}

_client.scannerClose(scanner);

我的问题是:

1) 有多少方法可以提高 Thrift 查询到 hbase 的性能(优化)。 2)如何在Hbase上缓存Thrift查询响应。 3) 如何在 Master 节点上管理 Thrift 服务器的负载均衡。

【问题讨论】:

    标签: hbase thrift


    【解决方案1】:

    您可以在这里尝试缓存。这可能会在一定程度上减少迭代时间。

    var entry = _client.scannerGetList(scanner,100); 
    

    这里scanner是返回的ScannerId,数字代表要缓存的行数。

    我是这个领域的新手。您可以尝试一下,但不确定可以实现的性能提升。

    【讨论】:

      猜你喜欢
      • 2014-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多