首页 > 解决方案 > Google Cloud Dataproc OOM 问题

问题描述

在 Spark 集群(Dataproc)上执行代码时遇到 OOM 问题。

环境:2节点集群,每个节点6G内存。测试文件大小为 20Gb。

这是我的代码:

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")

是否可以使用 Spark 集群将数据流式传输到 GCS 并为工作节点设置节流(缓冲区)以避免 OOM 错误?或者,如果有其他解决方案可以从外部源(sftp)读取数据并将其保存到 GCS 中?

标签: pythongoogle-cloud-platformgoogle-cloud-dataproc

解决方案


使用 Hadoop DistCp而不是 Spark 将文件从 SFTP 服务器复制到 GCS会更合适。

这是有关如何在 Hadoop 中配置 SFTP 支持的说明: https ://stackoverflow.com/a/33878054/3227693 。


推荐阅读