HBase時間軸一致性:讀取API和用法

2018-07-05 14:01 更新

閱讀API和用法

Shell

您可以使用Consistency.TIMELINE語義在shell中進行讀取,如下所示:

hbase(main):001:0> get 't1','r6', {CONSISTENCY => "TIMELINE"}

您可以模擬區(qū)域服務(wù)器暫停或變得不可用,并從輔助副本執(zhí)行讀取操作:

$ kill -STOP <pid or primary region server>

hbase(main):001:0> get 't1','r6', {CONSISTENCY => "TIMELINE"}

使用掃描也是類似的:

hbase> scan 't1', {CONSISTENCY => 'TIMELINE'}

Java

您可以為Get和Scans設(shè)置一致性,并按如下方式執(zhí)行請求:

Get get = new Get(row);
get.setConsistency(Consistency.TIMELINE);
...
Result result = table.get(get);

您還可以傳遞多個獲?。?/p>

Get get1 = new Get(row);
get1.setConsistency(Consistency.TIMELINE);
...
ArrayList<Get> gets = new ArrayList<Get>();
gets.add(get1);
...
Result[] results = table.get(gets);

以及掃描:

Scan scan = new Scan();
scan.setConsistency(Consistency.TIMELINE);
...
ResultScanner scanner = table.getScanner(scan);

您可以通過調(diào)用Result.isStale()方法來檢查結(jié)果是否來自主區(qū)域:

Result result = table.get(get);
if (result.isStale()) {
  ...
}
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號