https://wiki.apache.org/hadoop/AmazonS3 의 존재 와 다음 단어를 알고 있습니다 .
S3 기본 파일 시스템 (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 블록 파일 시스템 (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에 쓸 수 있습니다 . 답변을 수정해야 할 수도 있습니다.