6

gcloud beta emulators の bigtable エミュレータを使用しようとしています。エミュレーターを起動し、ホスト名 (localhost) とポート (この例では 8885) を取得します。

gcloud ベータ版エミュレーター bigtable 開始

実行: /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/platform/bigtable-emulator/cbtemulator --host=localhost --port=8885

私はJavaテストクライアントからエミュレータに接続しようとしています.ここに私が提供するものがあります:

Configuration conf = BigtableConfiguration.configure(projectId, instanceId);

if(!Strings.isNullOrEmpty(host)){
    conf.set(BigtableOptionsFactory.BIGTABLE_HOST_KEY, host);
    conf.set(BigtableOptionsFactory.BIGTABLE_PORT_KEY, Integer.toString(port));
}
connection = BigtableConfiguration.connect(configuration);
try (Table table = connection.getTable("tName")){
    table.put(<Put instance>);
} 

テストコードを実行すると、次のようになります。

16:36:37.369 [bigtable-batch-pool-1] INFO com.google.cloud.bigtable.grpc.async.AbstractRetryingRpcListener - Retrying failed call. Failure #1, got: Status{code=UNAVAILABLE, description=null, cause=java.net.ConnectException: Connection refused: localhost/0:0:0:0:0:0:0:1:8885}
java.net.ConnectException: Connection refused: localhost/0:0:0:0:0:0:0:1:8885

私はライブラリを使用しています:com.google.cloud.bigtable:bigtable-hbase-1.2:0.9.1

私が間違っていることについて何か考えはありますか?

ありがとう !

4

2 に答える 2

4

追加の設定プロパティを 1 つ設定する必要があります。

conf.set(BigtableOptionsFactory.BIGTABLE_USE_PLAINTEXT_NEGOTIATION, true);

また、ログ メッセージから、IPv6 アドレスに接続しようとしているように見えますが、うまくいかないと思います。host有効な IPv4 アドレスであることを再確認してください。

近い将来、Java クライアントを使用すると、これを簡単に実行できるようになります。

于 2016-07-26T19:55:19.420 に答える
1


configuration.set(BigtableOptionsFactory.BIGTABLE_EMULATOR_HOST_KEY,<HOST:PORT>);これで、エミュレータに接続するように設定できます。

また、「https://github.com/googleapis/java-bigtable/tree/master/google-cloud-bigtable-emulator」を使用して、テストなどのためにプログラムでエミュレーターを起動できます。

于 2020-05-25T15:29:16.233 に答える