通常似乎是要弄清楚如何告诉S3进行分段上传。要将数据从HDFS复制到S3,可以使用s3n文件系统并专门启用分段上传来完成 fs.s3n.multipart.uploads.enabled=true
fs.s3n.multipart.uploads.enabled=true
这可以这样做:
hdfs dfs -Dfs.s3n.awsAccessKeyId=ACCESS_KEY -Dfs.s3n.awsSecretAccessKey=SUPER_SECRET_KEY -Dfs.s3n.multipart.uploads.enabled=true -cp hdfs:///path/to/source/data s3n://bucket/folder/
进一步的配置可以在这里找到: https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html
该 宾语 大小限制为5 TB。该 上载 大小仍为5 GB,如手册中所述:
根据您上传的数据大小,Amazon S3提供以下选项: 在单个操作中上传对象 单个 PUT 操作,您可以上传最大5 GB的对象。 部分上传对象 使用Multipart上传API,您可以上传大型对象,最高可达5 TB。
根据您上传的数据大小,Amazon S3提供以下选项:
在单个操作中上传对象 单个 PUT 操作,您可以上传最大5 GB的对象。
PUT
部分上传对象 使用Multipart上传API,您可以上传大型对象,最高可达5 TB。
http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadingObjects.html
完成分段上传后,S3会验证并重新组合这些部分,然后在S3中有一个对象,最大可达5TB,可以作为单个权限下载,只需一个HTTP GET 请求...但上传速度可能要快得多,即使是小于5GB的文件,因为您可以并行上传这些部分,甚至可以重新尝试上次首次尝试时未成功的部分。
GET