Https://wiki.apache.org/hadoop/AmazonS3'ün ve aşağıdaki kelimelerin varlığının farkındayım :
S3 Native FileSystem (URI şeması: s3n) S3'te normal dosyaları okumak ve yazmak için yerel bir dosya sistemi. Bu dosya sisteminin avantajı, S3 üzerindeki diğer araçlarla yazılmış dosyalara erişebilmenizdir. Tersine, diğer araçlar Hadoop kullanılarak yazılan dosyalara erişebilir. Dezavantajı, S3 tarafından uygulanan dosya boyutundaki 5 GB sınırdır.
S3A (URI şeması: s3a) S3 Native, s3n fs'nin halefi olan S3a: sistemi, S3 ile etkileşimde bulunmak için Amazon'un kitaplıklarını kullanır. Bu, S3a'nın daha büyük dosyaları (5 GB sınırı yoktur), daha yüksek performanslı işlemleri ve daha fazlasını desteklemesini sağlar. Dosya sisteminin S3 Native'in yerine / yerine geçmesi amaçlanmıştır: s3n: // URL'lerinden erişilebilen tüm nesnelere, URL şeması değiştirilerek s3a'dan da erişilebilir.
S3 Blok Dosya Sistemi (URI şeması: s3) S3 tarafından desteklenen blok tabanlı bir dosya sistemi. Dosyalar, HDFS'de olduğu gibi bloklar halinde depolanır. Bu, yeniden adların verimli bir şekilde uygulanmasına izin verir. Bu dosya sistemi, dosya sistemi için bir grup ayırmanızı gerektirir - dosyaları içeren mevcut bir grubu kullanmamalı veya aynı gruba başka dosyalar yazmamalısınız. Bu dosya sistemi tarafından depolanan dosyalar 5 GB'tan büyük olabilir, ancak diğer S3 araçlarıyla birlikte çalışamazlar.
URI'daki bir harf değişikliği neden bu kadar fark yaratabilir? Örneğin
val data = sc.textFile("s3n://bucket-name/key")
için
val data = sc.textFile("s3a://bucket-name/key")
Bu değişikliğin altında yatan teknik fark nedir? Bununla ilgili okuyabileceğim iyi makaleler var mı?
s3a
şemayı kullanarak EMR işlerinden S3'e yazabilirim . Cevabın revize edilmesi mümkündür.