2016-07-25 3 views
4

Я пытаюсь использовать эмулятор bigtable из бета-эмуляторов gcloud. я запустить эмулятор, захватить имя хоста (локальный) и порт (в данном случае 8885)Как подключиться к работающему эмулятору bigtable из java

gcloud бета эмуляторы Bigtable начать

Выполнение:/USR/местные/Caskroom/Google-облако SDK/последние/Google-облако SDK/платформа/Bigtable-эмулятор/cbtemulator --host = локальный --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

Любая идея о том, что я делаю неправильно?

Спасибо!

+0

Способ, которым вы показали, - это не то, как эта страница говорит, чтобы запустить эмулятор] (https://cloud.google.com/sdk/gcloud/reference/beta/emulators/bigtable/start). –

+0

Я не пытаюсь запустить его из java, я пытаюсь подключиться к уже запущенному эмулятору из java – user1568967

+0

@JonnyHenly это выход журнала при запуске 'gcloud бета-эмуляторов bigtable start' – user1568967

ответ

3

Вам нужно один дополнительный конфигурационный свойство быть установлено:

conf.set(BigtableOptionsFactory.BIGTABLE_USE_PLAINTEXT_NEGOTIATION, true); 

Кроме того, из сообщения журнала, похоже, он пытается подключиться к IPv6-адрес, который я не думаю, что будет работать. Дважды проверьте, что host является действительным адресом IPv4.

Клиент java упростит работу в ближайшем будущем.

+0

Спасибо! переговоры с открытым текстом сделали трюк! IP был IPv4, я предполагаю, что журнал регистрирует как адреса v4, так и v6. – user1568967

+1

Это стало проще! Клиент java теперь поддерживает эмулятор напрямую с помощью соответствующего набора переменных среды: https://cloud.google.com/bigtable/docs/emulator –

Смежные вопросы