ฉันตระหนักถึงการมีอยู่ของhttps://wiki.apache.org/hadoop/AmazonS3และคำต่อไปนี้:
S3 Native FileSystem (URI Scheme: s3n) ระบบไฟล์เนทีฟสำหรับการอ่านและเขียนไฟล์ปกติบน S3 ข้อดีของระบบไฟล์นี้คือคุณสามารถเข้าถึงไฟล์บน S3 ที่เขียนด้วยเครื่องมืออื่น ๆ ในทางกลับกันเครื่องมืออื่น ๆ สามารถเข้าถึงไฟล์ที่เขียนโดยใช้ Hadoop ข้อเสียคือขีด จำกัด 5GB สำหรับขนาดไฟล์ที่กำหนดโดย S3
S3A (โครงร่าง URI: s3a) ตัวต่อจาก S3 Native, s3n fs, S3a: ระบบใช้ไลบรารีของ Amazon เพื่อโต้ตอบกับ S3 สิ่งนี้ช่วยให้ S3a รองรับไฟล์ขนาดใหญ่ (ไม่ จำกัด 5GB) การทำงานที่มีประสิทธิภาพสูงขึ้นและอื่น ๆ ระบบไฟล์มีจุดมุ่งหมายเพื่อแทนที่ / สืบต่อจาก S3 Native: อ็อบเจ็กต์ทั้งหมดที่เข้าถึงได้จาก s3n: // URL ควรสามารถเข้าถึงได้จาก s3a เพียงแค่แทนที่สคีมา URL
S3 Block FileSystem (URI Scheme: s3) ระบบไฟล์แบบบล็อกที่ได้รับการสนับสนุนโดย S3 ไฟล์จะถูกจัดเก็บเป็นบล็อกเช่นเดียวกับที่อยู่ใน HDFS สิ่งนี้อนุญาตให้ใช้การเปลี่ยนชื่อได้อย่างมีประสิทธิภาพ ระบบไฟล์นี้กำหนดให้คุณต้องอุทิศที่เก็บข้อมูลสำหรับระบบไฟล์ - คุณไม่ควรใช้ที่เก็บข้อมูลที่มีอยู่ซึ่งมีไฟล์อยู่หรือเขียนไฟล์อื่นลงในที่เก็บข้อมูลเดียวกัน ไฟล์ที่จัดเก็บโดยระบบไฟล์นี้อาจมีขนาดใหญ่กว่า 5GB แต่ไม่สามารถทำงานร่วมกับเครื่องมือ S3 อื่น ๆ ได้
เหตุใดการเปลี่ยนตัวอักษรใน URI จึงสามารถสร้างความแตกต่างได้ ตัวอย่างเช่น
val data = sc.textFile("s3n://bucket-name/key")
ถึง
val data = sc.textFile("s3a://bucket-name/key")
อะไรคือความแตกต่างทางเทคนิคที่อยู่ภายใต้การเปลี่ยนแปลงนี้ มีบทความดีๆที่ฉันสามารถอ่านได้หรือไม่?
s3a
โครงร่างได้ เป็นไปได้ว่าควรแก้ไขคำตอบ