2017-01-13 5 views
1

Ich glaube, ich folgte sehr Schritt auf das Dokument, aber ich lief immer noch in dieser Ausnahme. (Der einzige Unterschied ist, dass ich dies von Eclipse J2EE aus führe, aber ich erwarte nicht, dass dies wirklich passiert, oder?)Apache Beam Ausnahme beim Ausführen von Wordcount Beispiel

Code: (Ich habe dies nicht geschrieben, es ist direkt aus dem Beam Projektbeispiel). Ich denke, Sie müssten ein Google Cloud-Plattform-Projekt angeben und die richtigen Zugangsdaten bereitstellen. In diesem Beispielprojekt, das die Einrichtung durchführt, habe ich jedoch nirgends gefunden.

public static void main(String[] args) { 
// Create a PipelineOptions object. This object lets us set various execution 
// options for our pipeline, such as the runner you wish to use. This example 
// will run with the DirectRunner by default, based on the class path configured 
// in its dependencies. 
PipelineOptions options = PipelineOptionsFactory.create(); 

// Create the Pipeline object with the options we defined above. 
Pipeline p = Pipeline.create(options); 

// Apply the pipeline's transforms. 

// Concept #1: Apply a root transform to the pipeline; in this case, TextIO.Read to read a set 
// of input text files. TextIO.Read returns a PCollection where each element is one line from 
// the input text (a set of Shakespeare's texts). 

// This example reads a public data set consisting of the complete works of Shakespeare. 
p.apply(TextIO.Read.from("gs://apache-beam-samples/shakespeare/*")) 
..... 
) 

Ausnahme:

Exception in thread "main" java.lang.IllegalStateException: Failed to validate gs://apache-beam-samples/shakespeare/* 
at org.apache.beam.sdk.io.TextIO$Read$Bound.expand(TextIO.java:309) 
at org.apache.beam.sdk.io.TextIO$Read$Bound.expand(TextIO.java:205) 
at org.apache.beam.sdk.runners.PipelineRunner.apply(PipelineRunner.java:76) 
at org.apache.beam.runners.direct.DirectRunner.apply(DirectRunner.java:296) 
at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:388) 
at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:302) 
at org.apache.beam.sdk.values.PBegin.apply(PBegin.java:47) 
at org.apache.beam.sdk.Pipeline.apply(Pipeline.java:152) 
at google.dataflow.beam.example.MinimalWordCount.main(MinimalWordCount.java:77) 
Caused by: java.io.IOException: Unable to match files in bucket apache-beam-samples, prefix shakespeare/ against pattern shakespeare/[^/]* 
at org.apache.beam.sdk.util.GcsUtil.expand(GcsUtil.java:234) 
at org.apache.beam.sdk.util.GcsIOChannelFactory.match(GcsIOChannelFactory.java:53) 
at org.apache.beam.sdk.io.TextIO$Read$Bound.expand(TextIO.java:304) 
... 8 more 
Caused by: com.google.api.client.http.HttpResponseException: 400 Bad Request 
{ 


"error" : "invalid_grant" 
} 
    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1070) 
    at com.google.auth.oauth2.UserCredentials.refreshAccessToken(UserCredentials.java:207) 
    at com.google.auth.oauth2.OAuth2Credentials.refresh(OAuth2Credentials.java:149) 
    at com.google.auth.oauth2.OAuth2Credentials.getRequestMetadata(OAuth2Credentials.java:135) 
    at com.google.auth.http.HttpCredentialsAdapter.initialize(HttpCredentialsAdapter.java:96) 
    at com.google.cloud.hadoop.util.ChainingHttpRequestInitializer.initialize(ChainingHttpRequestInitializer.java:52) 
    at com.google.api.client.http.HttpRequestFactory.buildRequest(HttpRequestFactory.java:93) 
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.buildHttpRequest(AbstractGoogleClientRequest.java:300) 
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419) 
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352) 
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469) 
    at com.google.cloud.hadoop.util.ResilientOperation$AbstractGoogleClientRequestExecutor.call(ResilientOperation.java:166) 
    at com.google.cloud.hadoop.util.ResilientOperation.retry(ResilientOperation.java:66) 
    at com.google.cloud.hadoop.util.ResilientOperation.retry(ResilientOperation.java:103) 
    at org.apache.beam.sdk.util.GcsUtil.expand(GcsUtil.java:227) 
    ... 10 more 
+0

suchen Sie bitte Ihren Code .. –

+0

Code ist da oben. – foxwendy

+1

Haben Sie sich in der Befehlszeile mit 'gcloud' authentifiziert? https://cloud.google.com/dataflow/security-and-permissions –

Antwort

1

versuchen, es aus Eingabeaufforderung auszuführen, wenn Windows. Gehen Sie zu dem Ordner mit der Datei pom.xml und öffnen Sie dort cmd. Geben Sie dann Befehl mit den entsprechenden Argumenten.

mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount -Dexec.args=" --output=counts" -Pdirect-runner 

Wenn Sie mit Ihrer Eingabedatei ausführen möchten. Dann erstellen Sie eine TXT-Datei mit einem beliebigen Namen und legen Sie sie in den Ordner mit POM. Und dann folgt dem Befehl.

mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount -Dexec.args="--inputFile=YOURFILENAME.txt --output=counts" -Pdirect-runner** 

Ich hoffe, dies wird tun. Rest ich bin in Ihrer Ausgabe

Verwandte Themen