Java 基于行键的HBase读取性能
我已将1M行数据插入到hbase表中。然后,我正在编写一个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
//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(获取);