如题↑,记录一次关于hbase插入性能的检测
代码如下:
package hbase;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.Before;
import org.junit.Test;
public class HBaseMillionInput {
private Connection connection;
/*
* try to input 1000000 cells in the hbase,to see how effeicent it is
* */
@Before
public void init() throws Exception {
Configuration conf = new Configuration();
conf.set("hbase.zookeeper.quorum", "demo03:2181,demo04:2181,demo05:2181");
connection = ConnectionFactory.createConnection(conf);
}
@Test
public void test01()throws Exception{
HTable table=(HTable) connection.getTable(TableName.valueOf("ns1:t1"));
//do not use dialog for all put
table.setAutoFlush(false);
long startTime=System.currentTimeMillis();
for(int i=0;i<1000000;i++){
Put put=new Put(Bytes.toBytes("row"+i));
put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("name"),Bytes.toBytes(i));
table.put(put);
}
long endTime=System.currentTimeMillis();
System.out.println("total time is :"+(endTime-startTime)+"ms");
}
}
输出结果: