Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fchenxi/easyhbase

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

AltStyle によって変換されたページ (->オリジナル) /