我已经运行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