2016-07-22 8 views
1

AWS verfügt über several public "big data" data sets. Einige sind kostenlos auf EBS gehostet, und andere, wie NASA NEX climate data sind auf S3 gehostet. Ich habe darüber gefunden, wie man mit denen arbeitet, die in EBS gehostet werden, aber war nicht in der Lage, einen S3-Datensatz innerhalb eines EC2 mit genügend schneller Geschwindigkeit zu erhalten, um tatsächlich mit den Daten zu arbeiten.Arbeiten mit AWS S3 Großer öffentlicher Datensatz

Also mein Problem ist, die öffentlichen großen Datenmengen (~ 256T) in eine EC2 "hinein" zu bekommen. Ein Ansatz, den ich versuchte, war, den öffentlichen S3 an meinen EC2 zu montieren, wie in this tutorial. Bei der Verwendung von Python zur Auswertung dieser eingehängten Daten waren die Verarbeitungszeiten jedoch sehr, sehr langsam.

Ich fange an zu denken, die Verwendung der AWS CLI (cp oder) kann der richtige Ansatz sein, habe aber immer noch Schwierigkeiten, Dokumentation in Bezug auf große, öffentliche S3-Datensätze zu finden.

Kurz gesagt, ist der beste Weg, um mit AWS S3 öffentlichen Big Data Sets zu arbeiten, ist die CLI besser, ist dies ein EMR-Problem, oder liegt das Problem vollständig in der Größe und/oder Bandbreite?

+1

256T auf eine EC2 zu bekommen wird sehr viel Zeit in Anspruch nehmen und auch zu teuer sein, warum halten Sie das nicht in S3? – error2007s

+0

Ich verstehe nicht, verwenden Sie EMR mit mehreren Instanzen oder nur einer Instanz? 256T ist wirklich eine riesige Menge von Daten für nur eine Instanz, verwenden Sie ein Hadoop oder/und Spark oder ein anderes Framework, um die Daten zu verarbeiten? –

+0

@ error2007s Dies ist ein öffentlicher Datensatz, und ich muss Python verwenden können, um die Daten zu analysieren. Die Montage an einem EC2 ist ziemlich einfach, aber bei der Analyse der Daten ist es sehr langsam. Meine Frage betrifft diese Verbindung. Ich plane, es in einem S3 zu lassen, aber ich weiß nicht, wie man sich mit den Daten verbindet, um es verarbeiten zu können. – csg2136

Antwort

2

Sehr große Datensätze werden in der Regel mithilfe verteilter Verarbeitungstools wie Apache Hadoop (das als Teil des Amazon EMR-Dienstes verfügbar ist) analysiert. Hadoop kann die Verarbeitung zwischen mehreren Servern (Knoten) aufteilen, wodurch eine wesentlich höhere Geschwindigkeit und ein höherer Durchsatz erzielt werden, wenn parallel gearbeitet wird.

nahm ich einen Blick auf eine der Datensatzverzeichnisse und fand diese Dateien:

$ 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 
... 

Jede Datendatei in diesem Verzeichnis ist 1,3 TB (zusammen mit einer MD5-Datei Dateiinhalt über eine Prüfsumme zu verifizieren) .

ich eine dieser Dateien heruntergeladen

$ 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 

Der aws s3 cp Befehl herunterladen Multi-Teil die Datei abzurufen. Es dauerte noch einige Zeit, denn 1.3TB ist ein Los von Daten!

Das Ergebnis ist eine lokale Datei, die über Python zugegriffen werden kann:

$ 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 

Es ist in .nc Format, das ich denke, ist ein NetCDF.

Ich empfehle die Verarbeitung einer Datei zu einer Zeit, da EBS Datenvolumen 16TiB maximale Größe sind.