我已经运行了很多天的seq2sparse工作,但它还没有完成。主要原因是大多数“子作业”只有1个减速器,而每个作业有很多映射器。
我在从命令行调用seq2sparse时指定了--numReducers = n,但该属性仅在某些地方使用,例如MakePartialVectors
,但不用于Prune Vectors
等子作业。
可能是什么原因?
答案 0 :(得分:1)
我查看了代码并意识到numReducers
变量没有传递给所有子作业,因此这些作业是使用默认的reduce容量创建的,即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