apache-spark - 机器学习管道上的火花驱动程序内存问题
问题描述
我正在运行逻辑回归管道并在这条线上:
model = pipeline.fit(train_data)
我在 RDDLossFunction 阶段反复收到以下错误:
文件“/usr/spark-2.3.0/python/lib/pyspark.zip/pyspark/ml/base.py”,第 132 行,适合文件“/usr/spark-2.3.0/python/lib/pyspark. zip/pyspark/ml/pipeline.py",第 109 行,在 _fit 文件中 "/usr/spark-2.3.0/python/lib/pyspark.zip/pyspark/ml/base.py",第 132 行,在 fit 文件中“/usr/spark-2.3.0/python/lib/pyspark.zip/pyspark/ml/wrapper.py”,第 288 行,在 _fit 文件中“/usr/spark-2.3.0/python/lib/pyspark.zip /pyspark/ml/wrapper.py”,第 285 行,在 _fit_java 文件中“/usr/spark-2.3.0/python/lib/py4j-0.10.6-src.zip/py4j/java_gateway.py”,第 1160 行,通话中 文件“/usr/spark-2.3.0/python/lib/pyspark.zip/pyspark/sql/utils.py”,第 63 行,在 deco 文件“/usr/spark-2.3.0/python/lib/py4j- 0.10.6-src.zip/py4j/protocol.py",第 320 行,在 get_return_value py4j.protocol.Py4JJavaError:调用 o23199.fit 时出错。:org.apache.spark.SparkException:作业因阶段失败而中止:9个任务(3.4 GB)的序列化结果的总大小大于org.apache.spark.scheduler.DAGScheduler的spark.driver.maxResultSize(3.0 GB) .org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1599) 在 org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1587) 在 org.apache。 spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1586) 在 scala.collection。
我已尝试将分区号从 2001 降低到 400 ,如https://translate.google.co.il/translate?hl=en&sl=zh-CN&u=http://bourneli.github.io/scala/spark中所建议/2016/09/21/spark-driver-maxResultSize-puzzle.html&prev=search ,但得到了同样的错误。还尝试将 spark.driver.maxResultSize 增加到 3g - 也不好。
我有 2 个管道,一个用于准备数据,在整个数据集上完成,第二个只包含 LogisticRegression 和 labelconverter (IndexToString) - 是失败的。
我在一个独立的集群上运行,3 个工作人员,140GB 的组合,一个 15GB 的主机。
解决方案
错误日志清楚地说Total size of serialized results of 9 tasks (3.4 GB) is bigger than spark.driver.maxResultSize (3.0 GB)
您是否尝试过更改spark.driver.maxResultSize
大于 3.4 G?
推荐阅读
- scala - Ubuntu 服务随机停止并显示“主进程已退出,状态 143/n/a”
- python - 循环困难
- r - 一次转换目录中的多个.csv?
- xcode - 如何使用 Github Desktop 将 Github 存储库克隆到本地设备
- java - Eclipse Tomcat:需要不可用的 ARP/native 库
- azure-language-understanding - 无法通过 Luis 门户为意图添加示例话语
- mysql - MySQL 的 Connector/J 可以与 MariaDB 一起使用吗?
- python - 如何将枚举传递给 ParameterGrid?
- decoding - 使用ijkplayer解码后为什么解码的帧没有Y,U,V帧数据虽然是YUVJ420P
- javascript - 使用 React-Redux 时从输入字段更新状态