1:安装配置 mahout
mahout安装目录如下:
环境变量配置:
测试mahout安装是否成功:运行 mahout 出现如下结果证明安装成功。
2:数据准备:将下载的20news数据放到本地如下目录中:
3:建立训练集
运行如下命令:
mahout org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups \
-p /home/lihui/hadoop/data20news-bydata-train \
-o /home/lihui/hadoop/bayes-train-input \
-a org.apache.mahout.vectorizer.DefaultAnalyzer \
-c UTF-8
执行结果:
4:建立测试集
运行如下命令:
mahout org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups \
-p /home/lihui/hadoop/data20news-bydata-test \
-o /home/lihui/hadoop/bayes-test-input \
-a org.apache.mahout.vectorizer.DefaultAnalyzer \
-c UTF-8
执行结果如下:
5:将训练集和测试集上传到hdfs:
如下:
6:训练贝叶斯分类器:
执行如下命令:
mahout trainclassifier \
-i /user/lihui/20news/bayes-train-input \
-o /user/lihui/20news/newsmodel \
-type cbayes -ng 2 \
-source hdfs
执行结果如下:
生成的模型如下:
7:测试贝叶斯分类器:
执行如下命令:
mahout testclassifier \
-m /user/lihui/20news/newsmodel \
-d /user/lihui/20news/bayes-test-input \
-type cbayes -ng 2 \
-source hdfs \
-method mapreduce
执行结果出现异常:
如下
出现内存不足问题:
解决步骤:
a:修改hadoop集群中的 mapred-site.xml 在其中增加属性如下:
mapred.child.java.opts
b:重新启动hadoop集群
c:再次执行 上述测试命令:
执行如下:
执行完毕后 输出如下结果:
mahout安装目录如下:
![DATA.png DATA.png](http://f.dataguru.cn/farattach/forum/201310/17/110436ahth9tkhlblybz69.png)
环境变量配置:
![path.png path.png](http://f.dataguru.cn/farattach/forum/201310/17/110451wag8kpnkgsp5gx8w.png)
测试mahout安装是否成功:运行 mahout 出现如下结果证明安装成功。
![mahout-setup.png mahout-setup.png](http://f.dataguru.cn/farattach/forum/201310/17/1104452zh7kvo45kookqk8.png)
2:数据准备:将下载的20news数据放到本地如下目录中:
![data1.png data1.png](http://f.dataguru.cn/farattach/forum/201310/17/110430h5j1ji8at9q73cae.png)
3:建立训练集
运行如下命令:
mahout org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups \
-p /home/lihui/hadoop/data20news-bydata-train \
-o /home/lihui/hadoop/bayes-train-input \
-a org.apache.mahout.vectorizer.DefaultAnalyzer \
-c UTF-8
执行结果:
![xunlian.png xunlian.png](http://f.dataguru.cn/farattach/forum/201310/17/110506slq4bujplkligqjq.png)
4:建立测试集
运行如下命令:
mahout org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups \
-p /home/lihui/hadoop/data20news-bydata-test \
-o /home/lihui/hadoop/bayes-test-input \
-a org.apache.mahout.vectorizer.DefaultAnalyzer \
-c UTF-8
执行结果如下:
![test.png test.png](http://f.dataguru.cn/farattach/forum/201310/17/110458jj3bozoj3gtroibg.png)
5:将训练集和测试集上传到hdfs:
如下:
![up2hdfs.png up2hdfs.png](http://f.dataguru.cn/farattach/forum/201310/17/110503ibuso309sfwxwysa.png)
6:训练贝叶斯分类器:
执行如下命令:
mahout trainclassifier \
-i /user/lihui/20news/bayes-train-input \
-o /user/lihui/20news/newsmodel \
-type cbayes -ng 2 \
-source hdfs
执行结果如下:
![xunlianbayes.png xunlianbayes.png](http://f.dataguru.cn/farattach/forum/201310/17/110508d972z6sxd8l6td9b.png)
生成的模型如下:
![creatednewsmodel.png creatednewsmodel.png](http://f.dataguru.cn/farattach/forum/201310/17/110425xhu48igc0944h44h.png)
![creatednewsmodel-2.png creatednewsmodel-2.png](http://f.dataguru.cn/farattach/forum/201310/17/110422c3idl1p6i3bepp6p.png)
7:测试贝叶斯分类器:
执行如下命令:
mahout testclassifier \
-m /user/lihui/20news/newsmodel \
-d /user/lihui/20news/bayes-test-input \
-type cbayes -ng 2 \
-source hdfs \
-method mapreduce
执行结果出现异常:
如下
![error.png error.png](http://f.dataguru.cn/farattach/forum/201310/17/110441xsse7msj9ddoss0b.png)
![error2.png error2.png](http://f.dataguru.cn/farattach/forum/201310/17/110438yfew1bfeqfb1gzde.png)
出现内存不足问题:
解决步骤:
a:修改hadoop集群中的 mapred-site.xml 在其中增加属性如下:
mapred.child.java.opts
![MEM.png MEM.png](http://f.dataguru.cn/farattach/forum/201310/17/110448ms6ajynlox2kke2z.png)
b:重新启动hadoop集群
c:再次执行 上述测试命令:
执行如下:
![testbayes.png testbayes.png](http://f.dataguru.cn/farattach/forum/201310/17/1105012zhoccss9e92c9j9.png)
执行完毕后 输出如下结果:
![result.png result.png](http://f.dataguru.cn/farattach/forum/201310/17/11045438z38898099u33t8.png)