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 。
推荐阅读
- python - 为什么 x.__add__(y) 和 int.__add__(x, y) 都产生相同的输出?
- java - 问题是从未排序的数组中删除重复项并及时保持顺序 O(N)
- javascript - 无法在纽约时报 API 中访问图片网址
- node.js - Prisma2:如何设计与数组类型模型相关的模式?
- node.js - 亚马逊以后如何检索一些物品(移动应用程序)
- python - 为 python 3.6.4(windows 64 位)安装 Fiona 时遇到问题
- kotlin - 为什么这个while循环在kotlin中只运行一次?
- redis - 有没有可能让redis强一致?
- java - 传单和传单搜索:resetStyle 无法清除地图上的亮点,并且似乎“不是功能”
- node.js - Nodejs的多个发布请求