Ошибка Google Cloud Dataflow: учетные данные приложения по умолчанию недоступны

У нас есть задание Google Cloud Dataflow, которое пишет в Bigtable (через HBase API). К сожалению, это не удается из-за:

java.io.IOException: The Application Default Credentials are not available. They are available if running in Google Compute Engine. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information. at com.google.bigtable.repackaged.com.google.auth.oauth2.DefaultCredentialsProvider.getDefaultCredentials(DefaultCredentialsProvider.java:74) at com.google.bigtable.repackaged.com.google.auth.oauth2.GoogleCredentials.getApplicationDefault(GoogleCredentials.java:54) at com.google.bigtable.repackaged.com.google.cloud.config.CredentialFactory.getApplicationDefaultCredential(CredentialFactory.java:181) at com.google.bigtable.repackaged.com.google.cloud.config.CredentialFactory.getCredentials(CredentialFactory.java:100) at com.google.bigtable.repackaged.com.google.cloud.grpc.io.CredentialInterceptorCache.getCredentialsInterceptor(CredentialInterceptorCache.java:85) at com.google.bigtable.repackaged.com.google.cloud.grpc.BigtableSession.<init>(BigtableSession.java:257) at org.apache.hadoop.hbase.client.AbstractBigtableConnection.<init>(AbstractBigtableConnection.java:123) at org.apache.hadoop.hbase.client.AbstractBigtableConnection.<init>(AbstractBigtableConnection.java:91) at com.google.cloud.bigtable.hbase1_0.BigtableConnection.<init>(BigtableConnection.java:33) at com.google.cloud.bigtable.dataflow.CloudBigtableConnectionPool$1.<init>(CloudBigtableConnectionPool.java:72) at com.google.cloud.bigtable.dataflow.CloudBigtableConnectionPool.createConnection(CloudBigtableConnectionPool.java:72) at com.google.cloud.bigtable.dataflow.CloudBigtableConnectionPool.getConnection(CloudBigtableConnectionPool.java:64) at com.google.cloud.bigtable.dataflow.CloudBigtableConnectionPool.getConnection(CloudBigtableConnectionPool.java:57) at com.google.cloud.bigtable.dataflow.AbstractCloudBigtableTableDoFn.getConnection(AbstractCloudBigtableTableDoFn.java:96) at com.google.cloud.bigtable.dataflow.CloudBigtableIO$CloudBigtableSingleTableBufferedWriteFn.getBufferedMutator(CloudBigtableIO.java:836) at com.google.cloud.bigtable.dataflow.CloudBigtableIO$CloudBigtableSingleTableBufferedWriteFn.processElement(CloudBigtableIO.java:861)

В этом мало смысла, поскольку задание уже выполняется в сервисе/виртуальных машинах Cloud Dataflow.

Идентификатор задания Cloud Dataflow: 2016-05-13_11_11_57-8485496303848899541

Мы используем bigtable-hbase-dataflow версию 0.3.0 и хотим использовать HBase API.


person rav    schedule 13.05.2016    source источник
comment
Возможно ли, что у вас нет учетных данных, установленных в gcloud на машине, которая запускает задание потока данных??   -  person Les Vogel - Google DevRel    schedule 16.05.2016
comment
gcloud beta auth application-default print-access-token или application-default login to fix.   -  person Les Vogel - Google DevRel    schedule 16.05.2016
comment
@LesVogel-GoogleDevRel Должен ли он иметь учетную запись службы по умолчанию? Также эти виртуальные машины запускаются службой DF.   -  person rav    schedule 17.05.2016
comment
Ответ Бена выглядит как проблема, если нет, я пытался спросить, на какой машине вы запускаете службу потока данных?   -  person Les Vogel - Google DevRel    schedule 19.05.2016
comment
@ravwojdyla — эта проблема была решена для вас с выпуском Dataflow 1.6.0? Если да, пожалуйста, примите ответ ниже; если нет, пожалуйста, опубликуйте обновление с проблемами, которые вы видите, будь то те же или новые ошибки.   -  person Misha Brukman    schedule 05.07.2016
comment
@MishaBrukman позвольте мне еще немного понаблюдать за потоком данных, природа ошибки заключалась в том, что она не появлялась при каждом запуске, будет обновляться, если будет что-то новое.   -  person rav    schedule 09.07.2016


Ответы (2)


Я считаю, что это известная проблема, когда экземпляры GCE очень редко не могут получить учетные данные по умолчанию во время запуска.

Мы работаем над исправлением, которое должно стать частью следующего выпуска (1.6.0), который должен выйти в ближайшее время. Тем временем мы предлагаем повторно отправить задание, которое должно работать. Если вы постоянно сталкиваетесь с проблемами или хотите обсудить другие обходные пути (например, резервное копирование исправления 1.6.0), свяжитесь с нами.

person Ben Chambers    schedule 17.05.2016

Выпущена версия 1.7.0, поэтому это должно быть исправлено сейчас https://cloud.google.com/dataflow/release-notes/release-notes-java

person Feczo    schedule 19.09.2016