python – 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中?

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

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

点赞