codecamp

HBase异步客户端

HBase异步客户端

它是HBase 2.0中引入的新API,旨在提供异步访问HBase的能力。

您可以从ConnectionFactory获取AsyncConnectionfrom,然后从中获取一个异步表实例来访问HBase。完成后关闭AsyncConnection实例(通常在程序退出时)。

对于异步表,大多数方法与旧Table界面有相同的含义,预期返回值通常包含CompletableFuture。我们在这里没有任何缓冲区,所以没有关于异步表的close方法,你不需要关闭它。它是线程安全的。

扫描(scan)有以下几个不同之处:

  • getScanner方法可以返回一个ResultScanner。你可以以旧的方式使用它,它的工作原理与旧的ClientAsyncPrefetchScanner一样。
  • scanAll方法会一次返回所有的结果。它旨在为小扫描提供一种更简单的方法,您通常希望一次获得全部结果。
  • 观察者(Observer)模式。有一种扫描方法接受ScanResultConsumer作为参数。它会将结果传递给消费者。

注意,AsyncTable接口是模板化的。模板参数指定扫描使用的ScanResultConsumerBase类型,这意味着观察者模式扫描API是不同的。这两种类型的扫描用户是 ScanResultConsumer和AdvancedScanResultConsumer。

ScanResultConsumer需要一个单独的线程池,用于执行向返回的CompletableFuture注册的回调。由于使用单独的线程池可以释放RPC线程,所以回调可以自由地执行任何操作。如果回调不快,或者有疑问,请使用此功能。

AdvancedScanResultConsumer在框架线程内执行回调。不允许在回调中执行耗时的工作,否则它可能会阻塞框架线程并导致非常糟糕的性能影响。顾名思义,它是为想要编写高性能代码的高级用户而设计的。

HBase客户端:WriteBuffer和批处理方法
HBase异步管理
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

HBase快速入门

HBase批量加载

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }