简体   繁体   English

在Eclipse上使用Dataflow Runner的Apache Beam MinimalWordcount示例

[英]Apache Beam MinimalWordcount example with Dataflow Runner on eclipse

I am trying to run the MinimalWordCount example using the DataFlowRunner from Eclipse on windows using MinimalWordCount -->Run As Java Application from with in eclipse , its the same stock code from the example using my gcs bucket , however I consistently get the following exception , can some one let me know whats the issue here? 我正在尝试使用来自Eclipse的DataFlowRunner在Windows上使用MinimalWordCount运行MinimalWordCount示例 - >在eclipse中运行为Java应用程序,它使用我的gcs存储桶的示例中的相同股票代码,但是我一直得到以下异常,有人可以告诉我这里的问题吗?

  1. I have verified that the bucket name is correct. 我已经验证了存储桶名称是否正确。
  2. I already ran the gcloud init on my Windows machine. 我已经在我的Windows机器上运行了gcloud init。

Exception in thread "main" java.lang.RuntimeException: Failed to construct instance from factory method DataflowRunner#fromOptions(interface org.apache.beam.sdk.options.PipelineOptions) at org.apache.beam.sdk.util.InstanceBuilder.buildFromMethod(InstanceBuilder.java:233) at org.apache.beam.sdk.util.InstanceBuilder.build(InstanceBuilder.java:162) at org.apache.beam.sdk.runners.PipelineRunner.fromOptions(PipelineRunner.java:56) at org.apache.beam.sdk.Pipeline.create(Pipeline.java:135) at com.dynaobject.apachebeamexperiment.MinimalWordCount.main(MinimalWordCount.java:77) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.beam.sdk.util.InstanceBuilder.buildFromMethod(InstanceBuilder.java:222) ... 4 more Caused by: java.lang.IllegalA 线程“main”中的异常java.lang.RuntimeException:无法在org.apache.beam.sdk.util.InstanceBuilder.buildFromMethod中从工厂方法DataflowRunner#fromOptions(interface org.apache.beam.sdk.options.PipelineOptions)构造实例(InstanceBuilder.java:233)org.apache.beam.sdk.util.InstanceBuilder.build(InstanceBuilder.java:162)org.apache.beam.sdk.runners.PipelineRunner.fromOptions(PipelineRunner.java:56)at at org.apache.beam.sdk.Pipeline.create(Pipeline.java:135)at com.dynaobject.apachebeamexperiment.MinimalWordCount.main(MinimalWordCount.java:77)引起:sun.reflect的java.lang.reflect.InvocationTargetException。位于org.apache的java.lang.reflect.Method.invoke(未知来源)的sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)的sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)的NativeMethodAccessorImpl.invoke0(本地方法)。 beam.sdk.util.InstanceBuilder.buildFromMethod(InstanceBuilder.java:222)... 4更多引起:java.lang.IllegalA rgumentException: DataflowRunner requires gcpTempLocation, but failed to retrieve a value from PipelineOptions at org.apache.beam.runners.dataflow.DataflowRunner.fromOptions(DataflowRunner.java:212) ... 9 more Caused by: java.lang.IllegalArgumentException: Error constructing default value for gcpTempLocation: tempLocation is not a valid GCS path, gs://tempxyz. rgumentException:DataflowRunner需要gcpTempLocation,但无法从org.apache.beam.runners.dataflow.DataflowRunner.fromOptions(DataflowRunner.java:212)中的PipelineOptions检索值... 9更多原因:java.lang.IllegalArgumentException: Error构造gcpTempLocation的默认值:tempLocation不是有效的GCS路径,gs:// tempxyz。 at org.apache.beam.sdk.options.GcpOptions$GcpTempLocationFactory.create(GcpOptions.java:219) at org.apache.beam.sdk.options.GcpOptions$GcpTempLocationFactory.create(GcpOptions.java:205) at org.apache.beam.sdk.options.ProxyInvocationHandler.returnDefaultHelper(ProxyInvocationHandler.java:575) at org.apache.beam.sdk.options.ProxyInvocationHandler.getDefault(ProxyInvocationHandler.java:516) at org.apache.beam.sdk.options.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:155) at com.sun.proxy.$Proxy15.getGcpTempLocation(Unknown Source) at org.apache.beam.runners.dataflow.DataflowRunner.fromOptions(DataflowRunner.java:210) ... 9 more Caused by: java.lang.IllegalArgumentException: Output path does not exist or is not writeable: gs://tempxyz at org.apache.beam.sdk.repackaged.com.google.common.base.Preconditions.checkArgument(Preconditions.java:191) at org.apache.beam.sdk.util.GcsPathValidator.verifyPathIsAccessible(GcsPathValidator.java:78) at org.apache.beam.sdk.util.GcsPathValidator org.apache.beam.sdk.options.GcpOptions $ GcpTempLocationFactory.create(GcpOptions.java:219)org.apache.beam.sdk.options.GcpOptions $ GcpTempLocationFactory.create(GcpOptions.java:205)at org.apache位于org.apache.beam.sdk.options.ProxyInvocationHandler的org.apache.beam.sdk.options.ProxyInvocationHandler.getDefault(ProxyInvocationHandler.java:516)中的.beam.sdk.options.ProxyInvocationHandler.returnDefaultHelper(ProxyInvocationHandler.java:575) .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的org.apache.beam.sdk.util.GcsPathValidator.verifyPathIsAccessible(GcsPathValidator.java:78) .validateOutputFilePrefixSupported(GcsPathValidator.java:62) at org.apache.beam.sdk.options.GcpOptions$GcpTempLocationFactory.create(GcpOptions.java:217) ... 15 more .validateOutputFilePrefixSupported(GcsPathValidator.java:62)at org.apache.beam.sdk.options.GcpOptions $ GcpTempLocationFactory.create(GcpOptions.java:217)... 15更多

Somewhere in the documentation it was mentioned that I need to run the following . 在文档中的某处提到我需要运行以下内容。

gcloud auth application-default login gcloud auth application-default login

Obviously the exception does not help with figuring out this , I hope it helps someone else. 显然这个例外无助于弄清楚这一点,我希望它可以帮助别人。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM