问题描述
每周,我必须将文件从ftp服务器下载到GCS存储桶,然后将文件从GCS存储桶导入到BigQuery。我开始在GCP Cloud Composer中实施此数据流作业。
我将数据流分为三个任务
- 从ftp服务器下载文件并将其存储在Cloud Composer数据文件夹中。 (
/home/airflow/gcs/data
。 - 将文件从Cloud Composer数据文件夹移动到GCS存储桶。
- 将数据从GCS存储桶导入到BigQuery。
我在将文件从ftp服务器下载到Cloud Composer数据文件夹时遇到问题。文件的大约大小为20 Gb。我使用了wget
命令来下载文件,确切的命令是wget -c "remote_file_path" -P "/home/airflow/gcs/data"
。任务运行正常,但30分钟后失败,数据文件夹中的文件大小反映为零字节。我检查了日志,没有发现任何错误。
我尝试了与其他大小为1Gb的文件相同的过程,它就像魅力一样工作。
我还尝试使用SFTPOperation
,在运行一小时后,我出现了错误,提示Key-exchange timed out waiting for key negotiation
。
请帮助我解决这个问题。我也欢迎其他解决方案来实现此数据流。
谢谢。
解决方法
更新Cloud Composer环境为我们解决了这个问题。
我们遇到了类似的问题,文件大于大约。 1GB。 30分钟后,/ data文件夹中的文件大小为0字节,任务失败。
我们正在使用Cloud Composer 1.12.3版本。发行说明(提到{1.12.5版本的https://cloud.google.com/composer/docs/release-notes;
改进的GCSfuse稳定性可解决间歇性问题,其中 挂载的目录不可用
因此,我们已将Cloud Composer实例更新为版本1.13.0,看来可以解决该问题。