我已经运行seq2sparse作业很多天了,但它还没有完成。主要原因是大多数“子作业”只有一个减速器,而每个作业有许多Map器。我在从命令行调用seq2sparse时指定了--numreducers=n,但该属性仅在某些地方使用,例如 MakePartialVectors 但不适合像这样的副职 Prune Vectors .原因是什么?
MakePartialVectors
Prune Vectors
2w3rbyxf1#
我查看了代码,发现 numReducers 变量不会传递给所有子作业,因此这些作业将使用默认的reduce capacity(即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
numReducers
-Dmapred.reduce.tasks=n
--numReducers=n
./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
1条答案
按热度按时间2w3rbyxf1#
我查看了代码,发现
numReducers
变量不会传递给所有子作业,因此这些作业将使用默认的reduce capacity(即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