Ich versuche viele CSV-Dateien von s3 mit Arbeitern zu lesen, die auf ec2-Instanzen mit den richtigen IAM-Rollen laufen (ich kann aus den gleichen Buckets von anderen Skripten lesen). Wenn ich versuche, meine eigenen Daten von einem privaten Eimer mit diesem Befehl zu lesen:dask s3 Zugriff auf ec2 worker
client = Client('scheduler-on-ec2')
df = read_csv('s3://xyz/*csv.gz',
compression='gzip',
blocksize=None,
#storage_options={'key': '', 'secret': ''}
)
df.size.compute()
Daten zu sehen ist lokal wie lesen (von lokalen Python-Interpreter, nicht die Arbeiter), dann für die Arbeitnehmer gesendet wird (oder Scheduler?) durch den lokalen Interpreter, und wenn die Arbeiter die Brocken erhalten, führen sie die Berechnung aus und geben die Ergebnisse zurück. Gleiches mit oder ohne Passieren des Schlüssels und des Geheimnisses über storage_options
.
Wenn ich von einem öffentlichen S3 Eimer (Nyc Taxi Daten), mit storage_options={'anon': True}
lesen, sieht alles in Ordnung.
Was denkst du ist das Problem und was sollte ich neu konfigurieren, um die Arbeiter direkt von s3 lesen zu lassen?
s3fs korrekt installiert ist, und das sind die unterstützten Dateisysteme nach dask:
>>>> dask.bytes.core._filesystems
{'file': dask.bytes.local.LocalFileSystem,
's3': dask.bytes.s3.DaskS3FileSystem}
aktualisieren
Nach Monitoring-Netzwerk-Schnittstellen, es sieht aus wie etwas aus dem Interpreter an den Scheduler hochgeladen . Je mehr Partitionen im Datenrahmen (oder Beutel) vorhanden sind, desto größer werden die Daten an den Scheduler gesendet. Ich dachte, es könnte das Berechnungsdiagramm sein, aber es ist wirklich groß. Für 12 Dateien sind es 2-3 MB, für 30 Dateien sind es 20 MB und für größere Daten (150 Dateien) dauert es einfach zu lange, um es an den Scheduler zu senden, und ich habe nicht darauf gewartet. Was wird noch an den Scheduler gesendet, der diese Datenmenge aufnehmen kann?
> Was wird noch an den Scheduler gesendet, der diese Datenmenge aufnehmen kann? Soweit ich weiß. Nichts. Wenn Sie ein reproduzierbares [minimum failing example] (http://stackoverflow.com/help/mcve) erstellen können, empfehle ich, etwas auf Github einzureichen. Wenn ich dieses Problem versuche, läuft alles gut. Sie könnten versuchen [das dask-Diagramm manuell zu inspizieren] (http://dask.pydata.org/en/latest/inspect.html). – MRocklin