使用asynchbase进行扫描
我从StumbleUpon开始使用这个库,但在继续异步扫描时遇到了一些问题。基于对库原则的理解,我编写了以下代码:使用asynchbase进行扫描,hbase,Hbase,我从StumbleUpon开始使用这个库,但在继续异步扫描时遇到了一些问题。基于对库原则的理解,我编写了以下代码: public class AsyncScanner implements Callback<Object, ArrayList<ArrayList<KeyValue>>> { private final Scanner scan; public AsyncScanner(Scanner scan) { t
public class AsyncScanner
implements Callback<Object, ArrayList<ArrayList<KeyValue>>> {
private final Scanner scan;
public AsyncScanner(Scanner scan) {
this.scan = scan;
}
public void start() {
scan.nextRows().addCallback(this);
}
@Override
public Object call(ArrayList<ArrayList<KeyValue>> rows) throws Exception {
if (rows == null) {
return null;
}
// some useful things here
scan.nextRows().addCallback(this);
return null;
}
}
此外,在异步文档中有这样一个短语:
您不能构建相互依赖的延迟循环,因为这将导致无限递归(谢天谢地,它将很快因StackOverflower错误而失败)
但我认为,这不是我的情况
我计划跟踪asynchbase以找出我的代码有什么问题,但如果有人能向我展示连续扫描的工作示例,这将非常有帮助
更新:
当你发布一段没有错误的代码时,这是一个尴尬的时刻。
问题出在来电者身上。我需要做一次扫描结束退出。我写道:
Scanner scanner = hclient.newScanner(TABLE);
<!--cut some initialization--!>
new AsyncScanner(scanner).start();
hclient.shutdown().joinUninterruptibly();
Scanner scanner = hclient.newScanner(TABLE);
<!--cut some initialization--!>
new AsyncScanner(scanner).start();
hclient.shutdown().joinUninterruptibly();
Scanner Scanner=hclient.newScanner(表);
更新副本:
当你发布一段没有错误的代码时,这是一个尴尬的时刻。问题出在来电者身上。我需要做一次扫描结束退出。我写道:
Scanner scanner = hclient.newScanner(TABLE);
<!--cut some initialization--!>
new AsyncScanner(scanner).start();
hclient.shutdown().joinUninterruptibly();
Scanner scanner = hclient.newScanner(TABLE);
<!--cut some initialization--!>
new AsyncScanner(scanner).start();
hclient.shutdown().joinUninterruptibly();
Scanner Scanner=hclient.newScanner(表);
请将您的更新作为答案发布并接受,以防止此问题出现在未回答的队列中?