我想在我的 Spark 集群上训练关于 10G 新闻语料库的 word2vec 模型。下面是我的spark集群的配置?
但是我发现使用 Spark Mllib 训练 Word2vec 并没有充分利用集群的资源。例如: ubuntu中top命令的图片
如上图所示,一个worker只使用了100%的cpu,其他三个worker没有使用(所以不贴他们的图片),刚才我是如何训练一个关于2G新闻语料的word2vec模型,大约需要6h ,所以我想知道如何更有效地训练模型?提前谢谢大家:)
UPDATE1:以下命令是我在 spark-shell 中使用的
spark-shell \
--master spark://ip:7077 \
--executor-memory 70G \
--driver-memory 70G \
--conf spark.akka.frameSize=2000 \
--conf spark.driver.maxResultSize=0 \
--conf spark.default.parallelism=180
//import related packages
import org.apache.spark._
import org.apache.spark.mllib.linalg.{Vector, Vectors}
import org.apache.spark.mllib.feature.{Word2Vec, Word2VecModel}
//read about 10G newsdata corpus
val newsdata = sc.textFile("hdfs://ip:9000/user/bd/newsdata/*",600).map(line => line.split(" ").toSeq)
//Configure word2vec parameters
val word2vec = new Word2Vec()
word2vec.setMinCount(10)
word2vec.setNumIterations(10) …