【问题标题】:Failed to listTables: Missing authentication for Google BigTable?无法列出表格:缺少 Google BigTable 的身份验证?
【发布时间】:2015-11-12 09:52:11
【问题描述】:

我无法在网上找到很多关于此问题的信息,但是...

我正在 Google 的云服务上设置一个新的 BigTable 集群。我已经完成了您使用大多数 Google API 的整个过程(创建服务帐户、知道您的项目 ID、使用 gcloud 工具进行身份验证、Google 环境变量集等)。

我在完成设置后遇到了问题。我收到此错误,我在网上找不到任何内容:

Caused by: com.google.bigtable.repackaged.com.google.common.util.concurrent.UncheckedExecutionException: io.grpc.StatusRuntimeException: 
    NOT_FOUND: Error listing tables for cluster projects/bigtable-1127/zones/us-central1-c/clusters/bigdatastats : Failed to read Tables in cluster: bigdatastats

这是包含错误的完整打印。请注意,我在尝试创建表时也遇到了同样的错误:

 ./bin/hbase com.google.cloud.bigtable.hbase.CheckConfig
User Agent: bigtable-hbase-1.0-0.2.1
Project ID: bigtable-1127
Cluster Id: bigdatastats
ZoneId: us-central1-c
Cluster admin host: bigtableclusteradmin.googleapis.com
Table admin host: bigtabletableadmin.googleapis.com
Data host: bigtable.googleapis.com
Attempting credential refresh...
HBase Connection Class = com.google.cloud.bigtable.hbase1_0.BigtableConnection (OK)
Opening table admin connection...
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/Users/Michael/bigtable/hbase-1.0.1.1/lib/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/Cellar/hadoop/2.7.1/libexec/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
2015-11-12 01:30:31,552 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2015-11-12 01:30:32,619 INFO  [main] grpc.BigtableSession: Opening connection for projectId bigtable-1127, zoneId us-central1-c, clusterId bigdatastats, on data host bigtable.googleapis.com, table admin host bigtabletableadmin.googleapis.com.
Tables in cluster bigdatastats:
Exception in thread "main" java.io.IOException: Failed to listTables
    at org.apache.hadoop.hbase.client.AbstractBigtableAdmin.requestTableList(AbstractBigtableAdmin.java:221)
    at org.apache.hadoop.hbase.client.AbstractBigtableAdmin.listTableNames(AbstractBigtableAdmin.java:208)
    at com.google.cloud.bigtable.hbase.CheckConfig.main(CheckConfig.java:99)
Caused by: com.google.bigtable.repackaged.com.google.common.util.concurrent.UncheckedExecutionException: io.grpc.StatusRuntimeException: NOT_FOUND: Error listing tables for cluster projects/bigtable-1127/zones/us-central1-c/clusters/bigdatastats : Failed to read Tables in cluster: bigdatastats
    at io.grpc.stub.Calls.getUnchecked(Calls.java:117)
    at io.grpc.stub.Calls.blockingUnaryCall(Calls.java:129)
    at com.google.bigtable.admin.table.v1.BigtableTableServiceGrpc$BigtableTableServiceBlockingStub.listTables(BigtableTableServiceGrpc.java:338)
    at com.google.cloud.bigtable.grpc.BigtableTableAdminGrpcClient.listTables(BigtableTableAdminGrpcClient.java:44)
    at org.apache.hadoop.hbase.client.AbstractBigtableAdmin.requestTableList(AbstractBigtableAdmin.java:219)
    ... 2 more
Caused by: io.grpc.StatusRuntimeException: NOT_FOUND: Error listing tables for cluster projects/bigtable-1127/zones/us-central1-c/clusters/bigdatastats : Failed to read Tables in cluster: bigdatastats
    at io.grpc.Status.asRuntimeException(Status.java:428)
    at io.grpc.stub.Calls$UnaryStreamToFuture.onClose(Calls.java:324)
    at io.grpc.ChannelImpl$CallImpl$ClientStreamListenerImpl$3.run(ChannelImpl.java:402)
    at io.grpc.SerializingExecutor$TaskRunner.run(SerializingExecutor.java:154)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

如果有人能提供帮助,那就太棒了。我不知道该怎么做,也找不到任何东西。显然它围绕身份验证,我的密钥文件是新鲜的并且在正确的位置,我运行了 gcloud auth,我不确定还有什么要检查的。

如果我可以提供更多信息来帮助回答,请告诉我。

【问题讨论】:

  • 您下载了快速入门吗? cloud.google.com/bigtable/docs/hbase-shell-quickstart 它应该可以在 Linux 和 Mac 上运行。只需将 GOOGLE_APPLICATIONS_CREDENTIALS 设置为指向 .json 凭据。我很好奇您的“尝试凭据刷新”中发生了什么。
  • 我想我越来越近了...我确实从以前的项目中安装了快速入门,这可能是我的问题所在。我在 quickstart.sh 文件的最后一行启用了完全调试,看起来我指定的旧项目是问题:[错误] 无法执行目标 org.codehaus.mojo:exec-maven-plugin:1.4.0:项目测试中的 exec (default-cli):
  • NOT_FOUND 似乎表明 projects/bigtable-1127/zones/us-central1-c/clusters/bigdatastats 集群不存在。项目或集群名称可能有错别字吗?
  • 后跟:gcloud config set project
  • @lcm — 您的问题解决了吗,还是仍然无法连接到 Bigtable?

标签: google-cloud-platform bigtable google-cloud-bigtable


【解决方案1】:

正如 cmets 中所述,这不太可能是身份验证问题。

如果您尝试查询的资源在您的项目中不存在,您将收到 NOT_FOUND 作为错误消息。因此,您可能希望按照 Les 的建议使用 gcloud config set project 切换默认项目。

【讨论】:

    猜你喜欢
    • 2017-03-19
    • 1970-01-01
    • 2018-08-03
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    相关资源
    最近更新 更多