Проблема с Google Cloud Dataproc OOM - PullRequest
       8

Проблема с Google Cloud Dataproc OOM

0 голосов
/ 11 февраля 2019

Я сталкиваюсь с проблемой OOM, когда выполняю код в кластере Spark (Dataproc).

Среда: кластер из 2 узлов, каждый узел имеет 6 ГБ памяти.Размер тестового файла составляет 20 ГБ.

Вот мой код:

from __future__ import absolute_import
import pyspark

sc = pyspark.SparkContext()
sc._jsc.hadoopConfiguration().set('fs.sftp.impl', 'org.apache.hadoop.fs.sftp.SFTPFileSystem')

data = sc.textFile("sftp://user:pass@54.23.12.100/data/tmp/test_tile.csv.gz")
data.saveAsTextFile("gs://data/tmp")

Можно ли передавать данные в GCS с помощью кластера Spark и иметь регулирование (буфер) для рабочих узлов, чтобы избежать OOMошибка?Или, если есть какое-то другое решение для чтения данных из внешнего источника (sftp) и сохранения их в GCS?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Для внешнего решения вы можете попробовать rclone , который может синхронизировать данные из sftp в GCS.Или просто загрузите с sftp, и используйте gstuil copy для GCS.

Лучше всего использовать спарк-чтение данных напрямую из gcs.

Вы все еще хотите прочитать файл из sftp в Spark, вы можетеwnat, чтобы попробовать этот Spark SFTP Connector Library

0 голосов
/ 12 февраля 2019

Будет более целесообразно использовать Hadoop DistCp вместо Spark для копирования файла с SFTP-сервера в GCS.

Вот инструкция о том, как настроить поддержку SFTP в Hadoop: https://stackoverflow.com/a/33878054/3227693.

...