https://wiki.apache.org/hadoop/AmazonS3と次の単語の存在を知っています。
S3 Native FileSystem(URIスキーム:s3n)S3で通常のファイルを読み書きするためのネイティブファイルシステム。このファイルシステムの利点は、他のツールで作成されたS3上のファイルにアクセスできることです。逆に、他のツールは、Hadoopを使用して記述されたファイルにアクセスできます。欠点は、S3によって課されるファイルサイズの5GB制限です。
S3A(URIスキーム:s3a)S3 Nativeの後継であるs3n fsであるS3a:システムは、Amazonのライブラリーを使用してS3と対話します。これにより、S3aはより大きなファイル(5GBの制限なし)、より高いパフォーマンスの操作などをサポートできます。ファイルシステムは、S3 Nativeの代替/後継となることを目的としています。s3n:// URLからアクセスできるすべてのオブジェクトは、URLスキーマを置き換えるだけでs3aからもアクセスできるはずです。
S3 Block FileSystem(URIスキーム:s3)S3がサポートするブロックベースのファイルシステム。ファイルは、HDFSと同様にブロックとして保存されます。これにより、名前の変更を効率的に実装できます。このファイルシステムでは、ファイルシステム専用のバケットを用意する必要があります。ファイルを含む既存のバケットを使用したり、同じバケットに他のファイルを書き込んだりしないでください。このファイルシステムによって保存されるファイルは5GBを超える可能性がありますが、他のS3ツールと相互運用できません。
URIの文字を変更すると、なぜそのような違いが生じるのですか?例えば
val data = sc.textFile("s3n://bucket-name/key")
に
val data = sc.textFile("s3a://bucket-name/key")
この変更の根底にある技術的な違いは何ですか?これについて私が読むことができる良い記事はありますか?
s3a
スキームを使用してEMRジョブからS3に書き込むことができます。答えを修正する必要がある可能性があります。