搭建基于hadoop平台的机器学习工具Mahout

在看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
至此测试完成~












你可能感兴趣的:(hadoop学习)