昨天下午提交了第一个Spark程序:把搜集到的200M的电影字幕语料,500M的微博语料,以及几十M的保险问答语料,按每行一个句子的顺序,依次分词,送到Spark的Word2Vec中训练embedding矩阵。
运行一夜没啥问题,早晨10点多进入Word2Vec之后,突然遭遇Java OutOfMember崩溃了。不得不考虑性能问题。
原始的环境是个4c4g的阿里云服务器,只在单节点上安装了Spark。
nohup spark-submit --master local[2] --py-files CorpusWord2Vec.py --name CorpusWord2Vec CorpusWord2Vec.py > /data/code/alps_chatbot/spark_submit.out 2>&1 &
先解决Java堆空间的问题。
简单解决就是增加driver和executor的内存堆空间:
--driver-memory 2g
--executor-memory 2g
启动spark master:
sbin/start-master.sh -h 0.0.0.0 -p 40001 --webui-port 40002
在本机上启动spark worker
sbin/start-slave.sh spark://172.31.66.28:40001 -c 2 -m 2g