mahout random forests分布式策略

关于mahout中的random forests算法在前面已经分析过,这里简要说下其并行策略。

刚开始的时候,我以为这个算法好像没啥并行的地方,一开始就是对全部原始数据进行分析,也没有对原始数据进行分片。然后它的job任务也只有一个mapper,这样如何才能多建立几个mapper?然后这样才能达到几个节点并行吧(一个节点计算一个mapper,这样效率才高过一个节点计算多个mapper)。但是如果总共才有一个map任务,那就算有多个节点也是没有用的。然后我就记起来mapper任务map的个数是和输入数据的大小来的,64M就会新建一个map任务,如果数据大于64M就会新建一个map任务。所以我就把前面的glass.data数据进行加倍处理,一直到数据到了70多M的时候然后上传,运行buildforest任务,但是还是只有一个map任务被提交了。这样就让我好郁闷了。

然后就又去看官网的文档,看到下面的一句:

The number of partitions is controlled by the -Dmapred.max.split.size argument that indicates to Hadoop the max. size of each partition, in this case 1/10 of the size of the dataset. Thus 10 partitions will be used.
IMPORTANT: using less partitions should give better classification results, but needs a lot of memory. So if the Jobs are failing, try increasing the number of partitions
上面的大概意思是:设置-Dmapred.max.split.size参数,然后根据这个参数把数据进行分片,然后几个分片就会建立几个map任务进行提交。这样有多个map任务被提交的话,并行就有搞头了。这里应该就是按照split.size参数对原始数据进行分组(随机分?整块分?),然后对每组数据进行建树分析的过程,这样来达到对大数据的分组,并行的策略。但是这样的话,建立的树不是没有包含所有的信息?这点也是这个并行策略的不足吧,官网文档也说,如果分片越少,那么建立的决策树精度会提高(但是每个决策树模型需要消耗的内存也会增大),但是相对的并行性就会降低(试想,我又2个map任务,但是我又3个节点,那么不是有一个节点应该没有任务,这样效率其实是不高的)。

既然上面说的那个参数可以进行设置来决定map的个数,那么就试验一下吧:

上图可以看到提交了三个map任务,但是一个节点只能同时运行2个map(这个个数可以设置,我只有一个节点,伪分布式)。同时也可以看到运行失败了两个map任务,因为我提交的输入数据太大了(143M),所以内存吃不消了,在终端出现下面的错误:


所以针对这个算法,-Dmapred.max.split.size参数一定要进行设置,而且还要慎重考虑,这个算法同时关系到算法的效率和模型的精确度。


分享,成长,快乐

转载请注明blog地址:http://blog.csdn.net/fansy1990



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
论文研究-基于MapReduce的分布式改进随机森林学生就业数据分类模型研究.pdf,  教育数据挖掘(educational data mining)是当代教育信息化发展的前沿研究领域,正在吸引越来越多教育学家和数据科学家的关注."大数据"时代背景下,随着数据处理规模的不断激增,现有的数据挖掘模型在单一处理节点的计算能力遭遇瓶颈,各类面向大数据处理的分布式计算框架应运而生.借助这些框架,面向解决高校就业数据挖掘问题的机器学习模型便可以满足未来大规模数据处理的需求,在未来数据集体量庞大的信息集成系统中为数据挖掘和决策支持提供帮助.以此为背景,本研究对比现有数据模型对研究目标对象的分类性能,提出了以引入输入特征加权系数来计算特征的信息增益作为特征最优分裂评判指标的改进随机森林模型来提升数据分类性能,通过仿真测试改进模型对于现有模型分类性能的提升情况,与此同时为解决大数据时代背景下面向海量数据分类任务的单节点性能瓶颈问题,提出了基于分布式改进随机森林算法的大规模学生就业数据分类预测模型.通过使用MapReduce分布式计算框架实现已训练模型在本地磁盘与分布式文件系统之间的序列化写入与反序列化加载过程,进而实现了基于改进随机森林模型的大规模数据分类模型的分布式扩展.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值