如何提高对Hbase的Thrift客户端扫描程序查询的性能

如何提高对Hbase的Thrift客户端扫描程序查询的性能,hbase,thrift,Hbase,Thrift,我使用c#的thrift接口从Hbase获取实时数据。我的问题是,过滤查询占用了hbase太多的响应时间。示例代码如下所示: string TableName="testtable"; Dictionary<byte[], byte[]> attributes = new Dictionary<byte[], byte[]>(); TScan scanFilter = new TScan(); scanFilter.FilterString = ToByteArra

我使用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);

    }
我的问题是:

1) 有多少种方法可以提高对hbase的Thrift查询的性能(优化)。 2) 如何在Hbase上缓存Thrift查询响应。
3) 如何在主节点上管理Thrift server的负载平衡。

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

var entry = _client.scannerGetList(scanner,100); 
这里scanner是返回的ScannerId,数字表示要缓存的行数

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

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