Skip to content

fchenxi/easyhbase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

easyhbase

A hbase client based on pinpoint. It provides the salted rowkey solution by HBaseWD. Also,you can see HBASE-11682 for salt and hotspot in detail. It privodes async put,parallel scan,kerberos authorization etc.

Examples

1 syncPut & asyncPut example

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext-example.xml")
@Component
public class EasyHBaseClientExample {

@Autowired
private HbaseOperations2 hbaseScanTemplate;

@Autowired
private HbaseOperations2 hbaseAsyncTemplate;

@Autowired
private RowKeyDistributorByHashPrefix baseRowKeyDistributor;

private final byte[] COLUMN_FAMILY_NAME = Bytes.toBytes("S");
private final byte[] QUALIFIER_NAME = Bytes.toBytes("f");
private static final int AGENT_STAT_VER2_NUM_PARTITIONS = 32;

@Test
public void syncPutTest() {
    Put put = new Put(Bytes.toBytes("put1"));
    put.addColumn(COLUMN_FAMILY_NAME, QUALIFIER_NAME, Bytes.toBytes(String.valueOf("value1")));
    hbaseAsyncTemplate.put(HBaseTables.EASYHBASE, put);
}

@Test
public void asyncPutTest() {
    List<Put> puts = new ArrayList<>();
    Put put1 = new Put(Bytes.toBytes("asyncPut1"));
    Put put2 = new Put(Bytes.toBytes("asyncPut2"));
    put1.addColumn(COLUMN_FAMILY_NAME, QUALIFIER_NAME, Bytes.toBytes(String.valueOf
            ("asncyValue1")));
    put2.addColumn(COLUMN_FAMILY_NAME, QUALIFIER_NAME, Bytes.toBytes(String.valueOf
            ("asyncValue2")));
    puts.add(put1);
    puts.add(put2);
    hbaseAsyncTemplate.asyncPut(HBaseTables.EASYHBASE, puts);
}

@Test
public void asyncDistributedPutTest() {
    List<Put> puts = new ArrayList<>();
    Put put1 = new Put(baseRowKeyDistributor.getDistributedKey(Bytes.toBytes("asyncPut1")));
    Put put2 = new Put(baseRowKeyDistributor.getDistributedKey(Bytes.toBytes("asyncPut2")));
    put1.addColumn(COLUMN_FAMILY_NAME, QUALIFIER_NAME, Bytes.toBytes(String.valueOf
            ("asncyValue1")));
    put2.addColumn(COLUMN_FAMILY_NAME, QUALIFIER_NAME, Bytes.toBytes(String.valueOf
            ("asyncValue2")));
    puts.add(put1);
    puts.add(put2);
    hbaseAsyncTemplate.asyncPut(HBaseTables.EASYHBASE, puts);
}

}

2 scan example

@Test
public void distributedScanTest() {
    Range range = new Range(System.currentTimeMillis(), System.currentTimeMillis() + 100000);
    Scan scan = new Scan();
    RowMapper mapper = new EasyHBaseMapperV2();
    List<BaseDataPoint> results = hbaseScanTemplate.findParallel(HBaseTables.EASYHBASE,
            scan,
            baseRowKeyDistributor, mapper,
            AGENT_STAT_VER2_NUM_PARTITIONS);
    for (BaseDataPoint baseDataPoint : results) {
        System.out.println(baseDataPoint.toString());
    }
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages