1.3 亿行的 Bigtable 扫描抛出 java.lang.IllegalStateException:未开始

Bigtable scan of 130 million rows throws java.lang.IllegalStateException: Not started

尝试使用 HBase java 客户端扫描具有 1.3 亿行的 Bigtable。扫描几个小时后,它会抛出:

INFO com.google.cloud.bigtable.grpc.async.AbstractRetryingOperation - Retrying failed call. Failure #1, got: Status{code=DEADLINE_EXCEEDED, description=Error while reading table '', cause=null} on channel 5.

有一些这样的异常,重试从中恢复但最终导致:

java.lang.IllegalStateException: Not started
    at com.google.common.base.Preconditions.checkState(Preconditions.java:507)
    at io.grpc.internal.ClientCallImpl.request(ClientCallImpl.java:367)
    at io.grpc.PartialForwardingClientCall.request(PartialForwardingClientCall.java:34)
    at io.grpc.ForwardingClientCall.request(ForwardingClientCall.java:22)
    at io.grpc.ForwardingClientCall$SimpleForwardingClientCall.request(ForwardingClientCall.java:44)
    at io.grpc.PartialForwardingClientCall.request(PartialForwardingClientCall.java:34)
    at io.grpc.ForwardingClientCall.request(ForwardingClientCall.java:22)
    at io.grpc.ForwardingClientCall$SimpleForwardingClientCall.request(ForwardingClientCall.java:44)
    at io.grpc.PartialForwardingClientCall.request(PartialForwardingClientCall.java:34)
    at io.grpc.ForwardingClientCall.request(ForwardingClientCall.java:22)
    at com.google.cloud.bigtable.grpc.io.RefreshingOAuth2CredentialsInterceptor.request(RefreshingOAuth2CredentialsInterceptor.java:146)
    at io.grpc.PartialForwardingClientCall.request(PartialForwardingClientCall.java:34)
    at io.grpc.ForwardingClientCall.request(ForwardingClientCall.java:22)
    at io.grpc.ForwardingClientCall$SimpleForwardingClientCall.request(ForwardingClientCall.java:44)
    at com.google.cloud.bigtable.grpc.io.Watchdog$WatchedCall.request(Watchdog.java:198)
    at io.grpc.PartialForwardingClientCall.request(PartialForwardingClientCall.java:34)
    at io.grpc.ForwardingClientCall.request(ForwardingClientCall.java:22)
    at com.google.cloud.bigtable.grpc.scanner.RetryingReadRowsOperation$CallToStreamObserverAdapter.request(RetryingReadRowsOperation.java:90)
    at com.google.cloud.bigtable.grpc.scanner.ResponseQueueReader.getNextMergedRow(ResponseQueueReader.java:109)
    at com.google.cloud.bigtable.grpc.scanner.ResumingStreamingResultScanner.next(ResumingStreamingResultScanner.java:78)
    at com.google.cloud.bigtable.grpc.scanner.ResumingStreamingResultScanner.next(ResumingStreamingResultScanner.java:35)
    at com.google.cloud.bigtable.hbase.adapters.read.BigtableResultScannerAdapter.next(BigtableResultScannerAdapter.java:66)
    at org.apache.hadoop.hbase.client.ResultScanner.hasNext(ResultScanner.java:53)

快速更新:这两个问题都已在 1.9.0 版本中修复