Я пытаюсь перенести большие файлы из S3 в GCP, используя Airflow и его оператора S3ToGoogleCloudStorageOperator.Я смог передать файлы размером 400 Мб, но мне не удалось, если я попытался увеличить: 2 Гб, я получаю следующую ошибку:
[2018-09-19 12: 30: 43,907] {models.py: 1736} ОШИБКА - [Ошибка 28] На устройстве не осталось места для трассировки (последний вызов был последним):
Файл "/home/jma/airflow/env/lib/python3.5/site-packages/airflow/models.py ", строка 1633, в _run_raw_task result = task_copy.execute (context = context)
Файл" /home/jma/airflow/env/lib/python3.5/site-packages/airflow/contrib/operators/s3_to_gcs_operator.py ", строка 156, в файле execute_object.download_fileobj (f)
File" /home/jma/airflow/env/lib/python3.5/site-packages/boto3/s3/inject.py ", строка 760,в object_download_fileobj ExtraArgs = ExtraArgs, Callback = Callback, Config = Config)
Файл "/home/jma/airflow/env/lib/python3.5/site-packages/boto3/s3/inject.py", строка 678,в download_fileobj вернуть future.result ()
Файл "/home/jma/airflow/env/lib/python3.5/site-packages/s3transfer/futures.py", строка 73, в результате вернуть self._coordinator.result ()
Файл "/home/jma/airflow/env/lib/python3.5/site-packages/s3transfer/futures.py", строка 233, в результате поднять self._exception
File "/home/jma/airflow/env/lib/python3.5/site-packages/s3transfer/tasks.py ", строка 126, в call , возврат self._execute_main (kwargs)
File" /home / jma / airflow / env / lib / python3.5 / site-packages / s3transfer / tasks.py ", строка 150, в _execute_main return_value = self._main (** kwargs)
файл" / home / jma /airflow / env / lib / python3.5 / site-packages / s3transfer / download.py ", строка 583, в _main fileobj.write (data)
Файл" / home / jma / airflow / env / lib / python3.5 / tempfile.py ", строка 622, в func_wrapper return func (* args, ** kwargs) OSError: [Errno 28] На устройстве не осталось места
Полный код DAG может бытьнаходится в этом другом вопросе SO .
Файл не идет напрямую из S3 в GCP, а загружается на машину, на которой работает Airflow.Глядя на следы, кажется, что boto может быть ответственным, но все еще не может понять, как решить проблему, то есть назначить папку для временно копируемого файла.
Я хотел бы переместить файлы очень большого размераИтак, как настроить, чтобы не накладывать никаких ограничений?
Я запускаю Airflow 1.10 из Google Cloud Shell в GCP, где у меня есть 4 ГБ свободного места в домашнем каталоге (перемещаемый файл равен 2 ГБ)