我有一个存储在S3中的大文本文件,可以在多节点集群上使用's3:///文件夹/文件夹/文件'格式直接从EMR(比如PIG)中访问它。
我的问题是关于数据传输到数据节点的效率。我相信S3中的数据以与HDFS类似的方式存储在块中。
答案 0 :(得分:0)
通常,在拆分时从hdfs和s3读取之间没有区别。 S3FileSystem 类(s3输入的商店类)将使用公共位置和偏移量来获取s3文件块(使用HTTP请求,包括头部中的位置,偏移信息)。 更多细节,您可以在hadoop发布中查看代码。
是的,与HDFS程序相同。
这取决于工作流程。如果您阅读一次,多次查询,您可能希望将文件复制到HDFS,这将受益于本地I / O.否则你可以使用s3作为你的存储空间。 S3更稳定,存储空间无限,但可能比HDFS慢一点。 (我知道Netflix在许多情况下使用s3作为emr存储,它们可以正常工作)
PS: S3DistCp 可以帮助您在HDFS和S3之间快速复制。