在hadoop集群上训练word2vec

jfewjypa  于 2021-06-02  发布在  Hadoop
关注(0)|答案(0)|浏览(207)

尝试训练word2vec模型时,出现以下错误:

py4j.protocol.Py4JJavaError: An error occurred while calling o106.trainWord2VecModel.
: java.lang.OutOfMemoryError: Requested array size exceeds VM limit

我试图根据以下公式限制向量的增长,使其保持在整数的最大值范围内:

featureSize = (maxIntSize / 8)/vocabulary size

哪里:

maxIntsize/8 = 268435455

就我而言。
以及:

vocabulary size = 1811786

因此,特征向量大小设置为:

148

为我的任务留下足够的辨别能力,同时不超出系统数组大小的界限。
我的设置是:

conf = (SparkConf()
.set("spark.driver.maxResultSize", "0")\
.set("driver-memory", "50g")\
.set("executor-memory", "6g")\
.set("num-executors", "400"))

增加执行器内存似乎没有帮助。。。
谷歌和集群顾问似乎都知道如何解决这个问题。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题