Jeder nutzt s3 auf Frankfurt mit hadoop/spark 1.6.0?Mit S3 (Frankfurt) mit Spark
Ich versuche, das Ergebnis eines Auftrags auf s3 zu speichern, sind meine Abhängigkeiten wie folgt deklariert:
"org.apache.spark" %% "spark-core" % "1.6.0" exclude("org.apache.hadoop", "hadoop-client"),
"org.apache.spark" %% "spark-sql" % "1.6.0",
"org.apache.hadoop" % "hadoop-client" % "2.7.2",
"org.apache.hadoop" % "hadoop-aws" % "2.7.2"
ich die folgende Konfiguration festgelegt haben:
System.setProperty("com.amazonaws.services.s3.enableV4", "true")
sc.hadoopConfiguration.set("fs.s3a.endpoint", ""s3.eu-central-1.amazonaws.com")
Wenn saveAsTextFile
auf ruft meinen RDD es beginnt ok, alles auf S3 speichern. Doch nach einiger Zeit, wenn es von _temporary
auf die endgültige Ausgabe wird die Übertragung führen sie den Fehler ergeben:
Exception in thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: Status Code: 403, AWS Service: Amazon S3, AWS Request ID: XXXXXXXXXXXXXXXX, AWS Error Code: SignatureDoesNotMatch, AWS Error Message: The request signature we calculated does not match the signature you provided. Check your key and signing method., S3 Extended Request ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:798)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:421)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:232)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3528)
at com.amazonaws.services.s3.AmazonS3Client.copyObject(AmazonS3Client.java:1507)
at com.amazonaws.services.s3.transfer.internal.CopyCallable.copyInOneChunk(CopyCallable.java:143)
at com.amazonaws.services.s3.transfer.internal.CopyCallable.call(CopyCallable.java:131)
at com.amazonaws.services.s3.transfer.internal.CopyMonitor.copy(CopyMonitor.java:189)
at com.amazonaws.services.s3.transfer.internal.CopyMonitor.call(CopyMonitor.java:134)
at com.amazonaws.services.s3.transfer.internal.CopyMonitor.call(CopyMonitor.java:46)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Wenn ich hadoop-client
von Funken Paket verwenden Sie es nicht einmal um die Übertragung zu starten. Der Fehler tritt zufällig auf, manchmal funktioniert es und manchmal nicht.
scheint es ein Problem mit Ihrem SSH-Schlüssel. Könnten Sie überprüfen, ob Sie den richtigen Schlüssel verwenden? – user1314742
Die Daten beginnen mit s3 zu speichern, und nach einiger Zeit tritt der Fehler auf. – flaviotruzzi
@flaviotruzzi Haben Sie dieses Problem gelöst? – pangpang