我试图用Rhadoop(R和hadoop之间的链接)计算一些东西。
当我使用Hadoop-1.0.4中的嵌入式示例对集群进行基准测试时,它看起来运行良好。 (我的意思是,尽管cpu的使用率在50%到100%之间波动,但从属节点的所有核心都可以正常工作)
但是,当我以Rhadoop为例时,情况并非如此。 (每个从节点只有一个核心被激活。)
我必须在Rhadoop中设置任何配置吗?(就像我对hadoop的配置文件(例如core-site.xml)所做的一样)
谢谢
最佳答案
您可能正在谈论rmr2,它是RHadoop的一部分。 rmr2没有为此的特定配置。 help(rmr.options)
将显示所有配置选项。映射任务和映射槽的数量决定了映射阶段的并行度。听起来您有足够的插槽。因此, map task 的数量可能不足。它可能取决于输入的大小和其他属性。您可以将一个附加参数传递给mapreduce backend.parameters = list(hadoop = list(D = 'mapred.map.tasks'))
,但是hadoop不支持此设置,只是将其作为提示。不推荐使用backend.parameters
参数,但是删除该参数后,将为该特定目标提供一些替代机制。如果问题在缩减阶段,则密钥集的基数也很重要(它为并行度设置了上限)。我同意保罗的看法,如果您提供了一个可复制的示例,那么我的答案将包含更少的猜测。
RHadoop有一个专门的论坛,供开发人员和用户使用https://groups.google.com/forum/?fromgroups=#!forum/rhadoop