关于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
分享到:
相关推荐
Mahout机器学习领域分布式计算框架,详细介绍PPT
#资源达人分享计划#
NULL 博文链接:https://irwenqiang.iteye.com/blog/1561733
#资源达人分享计划#
#资源达人分享计划#
Oozie工作流在Mahout分布式数据挖掘中的应用.pdf
maven_mahout_template-mahout-0.8
mahout_help,mahout的java api帮助文档,可以帮你更轻松掌握mahout
mahout分布式数据挖掘工具,实现了在hadoop分布式环境下的各种数据挖掘算法,比如kmeans,聚类等,本文档是mahout的详细安装步骤。
mahout-examples-0.11.1 mahout-examples-0.11.1-job mahout-h2o_2.10-0.11.1 mahout-h2o_2.10-0.11.1-dependency-reduced mahout-hdfs-0.11.1 mahout-integration-0.11.1 mahout-math-0.11.1 mahout-math-0.11.1 ...
MAHOUT实战 MAHOUT IN ACTION
If you are a Java developer and want to use Mahout and Machine Learning to solve Big Data analytics use-cases then this book is for you. Familiarity with shell-scripts is assumed but no prior ...
Bayes 275 ■ Strength in elaborate structure: using random forests 276 14.6 Classifying the 20 newsgroups data with naive Bayes 276 Getting started: data extraction for naive Bayes 276 ■ Training the...
mahout-integration-0.7mahout-integration-0.7mahout-integration-0.7mahout-integration-0.7
Mahout:整体框架,实现了协同过滤 Deeplearning4j,构建VSM Jieba:分词,关键词提取 HanLP:分词,关键词提取 Spring Boot:提供API、ORM 关键实现 基于用户的协同过滤 直接调用Mahout相关接口即可 选择不同...
mahoutAlgorithms源码分析 mahout代码解析
Mahout支持K-Means等聚类算法,在此zip包中已经有打好jar包的资源,不需要用户再打jar包,可以直接使用。
mahout的详细安装,包括编译安装和快速安装,能够在hadoop上测试算法。
Mahout 官方文档,简单介绍Mahout概念及其安装和简单使用
spring-mahout-demo-----一个简单的spring-mahout结合的例子,是很好的学习开发思路的例子。