ALS算法迭代20次,爆栈错误:
spark在迭代计算的过程中(迭代次数太多),也就是函数调用层级过多导致,所需的栈空间也急剧上升,线程的栈满了,最终爆栈了。。
解决方法:
1. 减少迭代次数
ALS收敛很快(15次以内),实测把20次改为10次程序可以正常运行
2. checkpoint()
sc.setCheckpointDir("hdfs://hadoop01:9000/checkpoint")
把路径加到checkpoint,迭代30次都不会爆栈
ALS算法迭代20次,爆栈错误:
spark在迭代计算的过程中(迭代次数太多),也就是函数调用层级过多导致,所需的栈空间也急剧上升,线程的栈满了,最终爆栈了。。
解决方法:
1. 减少迭代次数
ALS收敛很快(15次以内),实测把20次改为10次程序可以正常运行
2. checkpoint()
sc.setCheckpointDir("hdfs://hadoop01:9000/checkpoint")
把路径加到checkpoint,迭代30次都不会爆栈