2017-08-11 8 views
2

私はSparkでEMR 5.5.0を使用しています。 s3://... URLを使用してs3に簡単なファイルを書き込むと、うまく書けます。しかし、s3a://...アドレスを使用すると、失敗します。Service: Amazon S3; Status Code: 403; Error Code: AccessDeniedS3A:S3:Spark EMRで動作中にエラーが発生する

AWSコマンドラインを使用して、私が書いているパスにあるすべてのファイルをcp、mv、およびrmできます。しかし、sparkから、s3aはputコマンドで失敗します。

私たちはサーバーサイド暗号化を有効にしており、s3のURLが機能するため、スパークが分かっています。何か案は?

失敗したデバッグログhere。たぶん重要なことに、私はrdd.saveAsTextFile(path)をやっているが、putコマンドはそれが寄せ木で行うべきである/my-bucket/tmp/carlos/testWrite/4/_temporary/0/に書こうとしていると言っている?その詳細が関連しているかどうかは分かりませんが、私は言及すると思います。

答えて

2

s3aは、Apache Hadoopで積極的に管理されているS3クライアントです。 AWSは何年も前にApache s3n://クライアントから自分自身のクライアントを外して&(多分)彼らの大規模な作業をしました。

彼らは同じデータを読み書きできますが、EMRのいくつかのビットは、EMR s3だけをサポートするファイルシステムクライアントで余分なメソッドを期待しています...あなたは安全にs3aを使うことはできません。

オリジナルのASF s3://クライアントは他のすべてと互換性がありませんが、EMRがamazonの製品である前に、HadoopをS3と接続するための最初のコードでした。

どちらが優れていますか? S3Aはおそらく、2017年8月の時点で、ORCとParquetのような列形式の積極的な読み込みIOで高速化されています。 EMR S3は、emrfsを使用すると、おそらくは弾力性と一貫性の面で優れています。しかし、オープンソースのASF S3Aクライアントは、これらの問題に対処するために動いています

+0

'EMR'' s3'プロトコルがパーケットで述語プッシュダウンを許可するかどうか知りませんか? ( 's3a'と同様に) –

+0

はFSレベルではないので、SparkとParquet libの間にあります。 AWSがこれらの2つのプロジェクト&プッシュダウンに必要な設定で行ったことに依存します。あなたはそれをテストするのに最適です –

0

EMRは本日現在のs3aプロトコルをサポートしていません。また、それはs3s3nは交換可能ですが、あなたは注意するs3

https://aws.amazon.com/premiumsupport/knowledge-center/emr-file-system-s3/ http://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-file-systems.html

一つを使用する必要があると言いサポートされていないがs3aは、読み取りのために働くようだが、書いていないということです。

関連する問題