使用AWS S3大型公共数据集

时间:2016-07-22 19:49:02

标签: amazon-web-services amazon-s3 amazon-ec2 bigdata

AWS有several public "big data" data sets可用。有些是在EBS上免费托管的,而其他像NASA NEX climate data托管在S3上。我找到more discussion关于如何使用EBS中托管的那些,但是无法以足够合理的速度在EC2中获取S3数据集来实际处理数据。

所以我的问题是将公共大数据集(~256T)“变成”EC2。我尝试过的一种方法是将公共S3挂载到我的EC2,如in this tutorial。但是,当尝试使用python来评估这个已安装的数据时,处理时间非常非常慢。

我开始认为使用AWS CLI(cpsync)可能是正确的方法,但是仍然很难找到有关大型公共S3数据集的文档。

简而言之,正在安装使用AWS的S3公共大数据集的最佳方式,CLI是否更好,这是一个EMR问题,还是问题完全在于实例大小和/或带宽?

1 个答案:

答案 0 :(得分:2)

通常在分布式处理工具(如Apache Hadoop(可作为Amazon EMR服务的一部分)提供)的帮助下分析非常大的数据集。 Hadoop可以在多个服务器(节点)之间拆分处理,通过并行工作实现更好的速度和吞吐量。

我看了一个数据集目录并找到了这些文件:

$ aws s3 cp s3://nasanex/NEX-DCP30/NEX-quartile/rcp26/mon/atmos/tasmax/r1i1p1/v1.0/CONUS/tasmax_ens-avg_amon_rcp26_CONUS_200601-201012.nc .
Completed 160 of 160 part(s) with 1 file(s) remaining

此目录中的每个数据文件都是1.3TB(与MD5文件一起通过校验和验证文件内容)。

我下载了其中一个文件:

aws s3 cp

$ ls -l total 1313244 -rw-rw-r-- 1 ec2-user ec2-user 1344734800 Sep 29 2013 tasmax_ens-avg_amon_rcp26_CONUS_200601-201012.nc 命令使用多部分下载来检索文件。它仍然需要相当长的时间,因为1.3TB是很多的数据!

结果是一个可以通过Python访问的本地文件:

.nc

它采用app-location格式,我认为是NetCDF

我建议一次处理一个文件,因为EBS数据量最大为16TiB。