【问题标题】:Working with AWS S3 Large Public Data Set使用 AWS S3 大型公共数据集
【发布时间】:2016-07-22 19:49:02
【问题描述】:

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 问题,还是问题完全在于实例大小和/或带宽?

【问题讨论】:

  • 256T 在 EC2 上运行将花费大量时间,而且成本太高,您为什么不在 S3 中保留它?
  • 我不明白,您是使用多实例的 EMR 还是只使用一个实例? 256T 确实是一个实例的大量数据,您是否使用 Hadoop 或/和 Spark 或其他框架来处理数据?
  • @error2007s 这是一个公共数据集,我需要能够使用python来分析数据。安装到 EC2 相当简单,但在分析数据时,速度非常慢。我的问题是关于这种联系。我打算将它留在 S3 中,但我不知道如何连接到数据以便能够处理它。
  • 那么您想提高 Python 处理速度以分析数据集吗?
  • s3fs 在这里并不是一个真正合适的工具。它需要一些不是文件系统 (S3) 的东西,并努力在其上施加文件系统语义——但不可能完美地实现跨越这种阻抗差距的桥梁。冒着问清楚的风险,您的 EC2 实例是否在 us-east-1 中?因为 iirc 是存储公共数据集的地方。相比之下,另一个地区的表现会很惨淡。

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


【解决方案1】:

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

我查看了其中一个数据集目录,发现了这些文件:

$ aws s3 -ls s3://nasanex/NEX-DCP30/NEX-quartile/rcp26/mon/atmos/tasmax/r1i1p1/v1.0/CONUS/

2013-09-29 17:58:42 1344734800 tasmax_ens-avg_amon_rcp26_CONUS_200601-201012.nc
2013-10-09 05:08:17         83 tasmax_ens-avg_amon_rcp26_CONUS_200601-201012.nc.md5
2013-09-29 18:18:00 1344715511 tasmax_ens-avg_amon_rcp26_CONUS_201101-201512.nc
2013-10-09 05:14:49         83 tasmax_ens-avg_amon_rcp26_CONUS_201101-201512.nc.md5
2013-09-29 18:15:33 1344778298 tasmax_ens-avg_amon_rcp26_CONUS_201601-202012.nc
2013-10-09 05:17:37         83 tasmax_ens-avg_amon_rcp26_CONUS_201601-202012.nc.md5
2013-09-29 18:20:42 1344775120 tasmax_ens-avg_amon_rcp26_CONUS_202101-202512.nc
2013-10-09 05:07:30         83 tasmax_ens-avg_amon_rcp26_CONUS_202101-202512.nc.md5
...

此目录中的每个数据文件为 1.3TB(连同通过校验和验证文件内容的 MD5 文件)。

我下载了以下文件之一:

$ 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

aws s3 cp 命令使用多部分下载来检索文件。这仍然需要相当长的时间,因为 1.3TB 是大量的数据!

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

$ 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

它是.nc 格式,我认为是NetCDF

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

【讨论】:

  • 这些文件是 1.3GB 而不是 TB。
猜你喜欢
  • 1970-01-01
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
  • 2021-01-26
  • 1970-01-01
  • 2013-05-15
  • 1970-01-01
  • 2021-08-31
相关资源
最近更新 更多