码迷,mamicode.com
首页 > 其他好文 > 详细

Spark ML 之 ALS内存溢出的解决办法

时间:2020-10-24 09:45:55      阅读:24      评论:0      收藏:0      [点我收藏+]

标签:内存   nbsp   col   font   sdn   操作   文件   pre   ram   

原帖:https://blog.csdn.net/Damonhaus/article/details/76572971

问题:协同过滤 ALS算法。在测试过程中遇到了内存溢出的错误

解决办法1:降低迭代次数,20次 -> 10次

  val model = new ALS().setRank(10).setIterations(20).setLambda(0.01).setImplicitPrefs(false) .run(alldata) 

以上改成 .setIterations(10)

解决办法2:checkpoint机制

    /**
     *  删除checkpoint留下的过程数据
     */
    val path = new Path(HDFSConnection.paramMap("hadoop_url")+"/checkpoint"); //声明要操作(删除)的hdfs 文件路径
    val hadoopConf = spark.sparkContext.hadoopConfiguration
    val hdfs = org.apache.hadoop.fs.FileSystem.get(hadoopConf)
    if(hdfs.exists(path)) {
      //需要递归删除设置true,不需要则设置false
      hdfs.delete(path, true) //这里因为是过程数据,可以递归删除
    }

  /**
   * 设置 CheckpointDir
   */
    spark.sparkContext.setCheckpointDir(HDFSConnection.paramMap("hadoop_url")+"/checkpoint")
val model = new ALS().setCheckpointInterval(2).setRank(10).setIterations(20).setLambda(0.01).setImplicitPrefs(false)
      .run(alldata)

 

Spark ML 之 ALS内存溢出的解决办法

标签:内存   nbsp   col   font   sdn   操作   文件   pre   ram   

原文地址:https://www.cnblogs.com/sabertobih/p/13863214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!