在看mahout之前,先看看它的logo:
有了Mahout,我们大象才会按照预期的想法去做事儿~驭象者~~~~ho~~~~~~~~
Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现、分类、聚类等。Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的数据量和处理性能。
确保hadoop集群全部正常启动~
下面我们在master节点上安装mahout。去Apache社区下载。直接使用命令:
wget http://mirror.metrocast.net/apache/mahout/0.9/mahout-distribution-0.9.tar.gz然后在当前目录下,会看到下载好的文件,解压缩 mahout-distribution-0.9.tar.gz并重命名为mahout,移动mahout到/usr/local/并修改文件夹的所有者及其所属组:
chown hadoop:hadoop mahout -R
然后在/etc/profile文件中添加环境变量
# set mahout environment export MAHOUT_HOME=/usr/local/mahout export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATH最后使环境变量生效:
source /etc/profile然后测试是否安装成功,终端键入mahout命令,如果输出的结果中含有许多相关的算法则说明安装成功。
然后测试一个K均值聚类的例子,首先需要下载原始数据,利用下面的命令:
wget http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data然后在hadoop集群上建立测试数据的目录,这里需要注意这个路径,要按照例子默认的路径
hdfs dfs -mkdir -p /user/hadoop/testdata然后上传数据到HDFS
hdfs dfs -put synthetic_control.data /user/hadoop/testdata然后运行聚类算法:
mahout org.apache.mahout.clustering.syntheticcontrol.kmeans.Job在我搭建的集群上,大致运行3分钟就可实现结果。可以利用下面的命令进行查看:
hdfs dfs -ls /user/hadoop/output下面运行一个分类器的例子:
先查看其运行脚本,按照其shell脚本的要求新建测试目录:
hdfs dfs -mkdir -p /tmp/mahout-work-hadoop/20news-all然后运行脚本,会提示选择哪种分类器,这里我选择贝叶斯分类器。
./classify-20newsgroups.sh至此测试完成~