环境: hadoop2.2.0
+ mahout0.9
hadoop1 192.168.100.171 (namenode、secondarynamenode、resourcemanager、mahout)
hadoop2 192.168.100.172 (datanode、nodemanager)
hadoop3 192.168.100.173 (datanode、nodemanager)
hadoop4 192.168.100.174 (datanode、nodemanager)
hadoop5 192.168.100.175 (datanode、nodemanager)
一:安装mahout0.9
[root@hadoop1 hadoop]# tar zxf /mnt/mydisk/soft/hadoop/mahout/mahout-distribution-0.9.tar.gz
[root@hadoop1 hadoop]# tar zxf /mnt/mydisk/soft/hadoop/mahout/mahout-distribution-0.9-src.tar.gz
[root@hadoop1 hadoop]# mv mahout-distribution-0.9 mahout09
[root@hadoop1 hadoop]# chown -R hadoop:hadoop mahout09
[root@hadoop1 hadoop]# vi /etc/profile
export HADOOP_PREFIX=/app/hadoop/hadoop220
export HADOOP_COMMON_HOME=${HADOOP_PREFIX}
export HADOOP_CONF_DIR=${HADOOP_PREFIX}/etc/hadoop
export MAHOUT_HOME=/app/hadoop/mahout09
export MAHOUT_CONF_DIR=/app/hadoop/mahout09/conf
export PATH=${MAHOUT_HOME}/conf:${MAHOUT_HOME}/bin:$PATH
[root@hadoop1 hadoop]# source /etc/profile
[root@hadoop1 hadoop]# su - hadoop
[hadoop@hadoop1 ~]$ cd /app/hadoop/mahout09/
[hadoop@hadoop1 mahout09]$ bin/mahout
二:聚类测试
Synthetic_control.data数据集下载地址
http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data
该数据集含有600行60列数据,每100行代表一种趋势图,共6种,具体说明参看:
Synthetic Control Chart Time Series
运行例程指南
Example: Synthetic control data
注意使用synthetic_control.data测试时要先上传至hdfs://hadoop1:8000/user/hadoop/testdata
命令行使用方法
$MAHOUT_HOME/bin/mahout org.apache.mahout.clustering.syntheticcontrol.${clustering.type}.Job
${clustering.type} 可以是canopy、kmeans、fuzzykmeans、dirichlet其中一种,比如使用kmeans使用如下命令:
$MAHOUT_HOME/bin/mahout org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
实验:
[hadoop@hadoop1 hadoop220]$ sbin/start-dfs.sh
[hadoop@hadoop1 hadoop220]$ sbin/start-yarn.sh
[hadoop@hadoop1 hadoop220]$ bin/hdfs dfs -mkdir -p /user/hadoop/testdata
[hadoop@hadoop1 hadoop220]$ bin/hdfs dfs -put /app/data/synthetic_control.data /user/hadoop/testdata/
[hadoop@hadoop1 hadoop220]$ cd ../mahout09/
[hadoop@hadoop1 mahout09]$ bin/mahout org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
三:分类器测试
mahout 0.8之后 20newsgroups的例程使用方法已经改变了,只需要直接运行一个脚本classify-20newsgroups.sh就可以了,但是在hadoop2.2.0上运行会出现错误,下面是hadoop2.2.0下运行情况:
[hadoop@hadoop1 hadoop220]$ bin/hdfs dfs -mkdir -p /tmp/mahout-work-hadoop/20news-all
[hadoop@hadoop1 mahout09]$ export HADOOP_HOME=/app/hadoop/hadoop220
以上两点要先做到,不然classify-20newsgroups.sh脚本运行会发生下载下来的样本数据无法上载、建模无法进行等问题。
[hadoop@hadoop1 mahout09]$ ./examples/bin/classify-20newsgroups.sh
修改/etc/profile并source,然后切换到 hadoop1.2.0
下运行该脚本,能正常运行,结果如下: