Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于行键的HBase读取性能_Java_Hbase - Fatal编程技术网

Java 基于行键的HBase读取性能

Java 基于行键的HBase读取性能,java,hbase,Java,Hbase,我已将1M行数据插入到hbase表中。然后,我正在编写一个java程序来测试基于行键的HBase的读取性能 //create a list which contains 10,000 row keys for(int i=0; i<10000; i++) { list.add(rowkey); } //go through the list and check the rowkey exists in HBase or not for(int i=0; i<list.siz

我已将1M行数据插入到hbase表中。然后,我正在编写一个java程序来测试基于行键的HBase的读取性能

//create a list which contains 10,000 row keys 
for(int i=0; i<10000; i++)
{
   list.add(rowkey);
}

//go through the list and check the rowkey exists in HBase or not
for(int i=0; i<list.size(); i++)
{
    Get g = new Get(list.get(i));
    g.setFilter(new KeyOnlyFilter());
    Result r = table.get(g);
    // ...

}
//创建一个包含10000行键的列表

对于(int i=0;i而言,性能较低主要是因为您在每次迭代中执行比较并启动get,我认为这显然需要一些时间,
hbase
并不是为了给您提供实时性能而设计的。

您可以使用exists()API来实现。下面是一个示例,希望对您有所帮助

        List<Get> gets = new ArrayList<Get>();
        for (String rowKey : rowKeys) {
            Get get = new Get(Bytes.toBytes(rowKey));
            gets.add(get);
        }

        Set<String> newRows = new HashSet<String>();
        Boolean[] results;
        HTableInterface table = getHTableInterface(tableName);
        results = table.exists(gets);    
List get=new ArrayList();
用于(字符串行键:行键){
Get Get=新Get(字节数.toBytes(行键));
get.add(get);
}
Set newRows=newhashset();
布尔[]结果;
HTableInterface table=getHTableInterface(tableName);
结果=table.exists(获取);