Пример Apache Beam MinimalWordcount с бегущим потоком данных в затмении
Я пытаюсь запустить пример MinimalWordCount, используя DataFlowRunner из Eclipse для Windows, используя MinimalWordCount -> Запускать как Java-приложение из with в eclipse, это тот же стандартный код из примера, использующего мое ведро gcs, однако я последовательно получаю следующее исключение: кто-нибудь может дать мне знать, в чем здесь проблема?
- Я проверил, что имя корзины правильное.
- Я уже запустил gcloud init на моей машине с Windows.
Исключение в потоке "main" java.lang.RuntimeException: не удалось создать экземпляр из фабричного метода DataflowRunner#fromOptions(интерфейс org.apache.beam.sdk.options.PipelineOptions) в org.apache.beam.sdk.util.InstanceBuilder.buildFromMethod(InstanceBuilder.java:233) в org.apache.beam.sdk.util.InstanceBuilder.build(InstanceBuilder.java:162) в org.apache.beam.sdk.runners.PipelineRunner.fromOptions(PipelineRunner.java:56 at) org.apache.beam.sdk.Pipeline.create(Pipeline.java:135) в com.dynaobject.apachebeamexperiment.MinimalWordCount.main(MinimalWordCount.java:77) Вызывается: java.lang.reflect.InvocationTargetException в sun.reflect.NativeMethodAccessorImpl.invoke0(собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke(неизвестный источник) в sun.reflect.DelegatingMethodAccessorImpl.invoke(неизвестный источник) в java.lang.reflect.Method. Неизвестный.beam.sdk.util.InstanceBuilder.buildFromMethod(InstanceBuilder.java:222) ... еще 4 причины: java.lang.IllegalArgumentException: DataflowRunner требует gcpTempLocation, но не удалось получить значение из PipelineOptions в org.apache.beam.runners.dataflow.DataflowRunner.fromOptions(DataflowRunner.java:212) ... еще 9 Причины: java.lang.IllegalArgumentException: создание значения по умолчанию для gcpTempLocation: tempLocation не является допустимым путем GCS, gs://tempxyz. в org.apache.beam.sdk.options.GcpOptions$GcpTempLocationFactory.create(GcpOptions.java:219) в org.apache.beam.sdk.options.GcpOptions $ GcpTempLocationFactory.create (GcpOache.j..beam.sdk.options..invoke(ProxyInvocationHandler.java:155) на com.sun.proxy.$Proxy15.getGcpTempLocation(Неизвестный источник) на org.apache.beam.runners.dataflow.DataflowRunner.fromOptions(DataflowRunner.java:210) ... еще 9 Вызвано: java.lang.IllegalArgumentException: выходной путь не существует или недоступен для записи: gs: // tempxyz at org.apache.beam.sdk.repackaged.com.google.common.base.Preconditions.checkArgument (Preconditions.java: 191) в org.apache.beam.sdk.util.GcsPathValidator.verifyPathIsAccessible(GcsPathValidator.java:78) в org.apache.beam.sdk.util.GcsPathValidator.validateOutputFilePrefixSupported(GcsPathValidator.java:62) в org.apache.beam.sdk.options.GcpOptions$GcpTempLocationFactory.create(GcpOptions.java:217) ... еще 15
1 ответ
Где-то в документации упоминалось, что мне нужно запустить следующее.
gcloud auth application-default login
Очевидно, что исключение не помогает выяснить это, я надеюсь, что это помогает кому-то еще.