我已经运行seq2sparse了很多天了,但是还没有完成。主要原因是大多数“子作业”只有1个 reducer ,而每个作业有许多映射器。

我从命令行调用seq2sparse时指定了--numReducers = n,但是该属性仅在诸如MakePartialVectors之类的某些地方使用,而不用于诸如Prune Vectors之类的子作业。

可能是什么原因?

最佳答案

我查看了代码,意识到numReducers变量没有传递给所有子作业,因此这些作业是使用默认的缩减容量创建的,即1

要解决此限制,只需在从命令行调用作业以及-Dmapred.reduce.tasks=n参数的同时指定变量--numReducers=n即可

还必须指定numReducers,因为默认情况下,Mahout CLI将其设为合一。

所以一个命令的例子是
./mahout seq2sparse -Dmapred.reduce.tasks=10 -i seq-files -o vectors -nv -wt tfidf -ng 2 --numReducers 10 --maxDFPercent 90 --minDF 2 --norm 2 --minLLR 20

10-08 13:35