Mahout 安装及测试

Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现、分类、聚类等。Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的数据量和处理性能。

在Mahout实现的机器学习算法:
算法类 算法名 中文名
分类算法 Logistic Regression 逻辑回归
Bayesian 贝叶斯
SVM 支持向量机
Perceptron 感知器算法
Neural Network 神经网络
Random Forests 随机森林
Restricted Boltzmann Machines 有限波尔兹曼机
聚类算法 Canopy Clustering Canopy聚类
K-means Clustering K均值算法
Fuzzy K-means 模糊K均值
Expectation Maximization EM聚类(期望最大化聚类)
Mean Shift Clustering 均值漂移聚类
Hierarchical Clustering 层次聚类
Dirichlet Process Clustering 狄里克雷过程聚类
Latent Dirichlet Allocation LDA聚类
Spectral Clustering 谱聚类
关联规则挖掘 Parallel FP Growth Algorithm 并行FP Growth算法
回归 Locally Weighted Linear Regression 局部加权线性回归
降维/维约简 Singular Value Decomposition 奇异值分解
Principal Components Analysis 主成分分析
Independent Component Analysis 独立成分分析
Gaussian Discriminative Analysis 高斯判别分析
进化算法 并行化了Watchmaker框架
推荐/协同过滤 Non-distributed recommenders Taste(UserCF, ItemCF, SlopeOne)
Distributed Recommenders ItemCF
向量相似度计算 RowSimilarityJob 计算列间相似度
VectorDistanceJob 计算向量间距离
非Map-Reduce算法 Hidden Markov Models 隐马尔科夫模型
集合方法扩展 Collections 扩展了java的Collections类

 

二、Mahout安装、配置

一、下载Mahout

http://archive.apache.org/dist/mahout/
二、解压
tar -zxvf mahout-distribution-0.9.tar.gz
三、配置环境变量
3.1、配置Mahout环境变量
/etc/profile.d
mahout.sh
export MAHOUT_HOME=/home/yujianxin/mahout/mahout-distribution-0.9
export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf
/etc
vim profile
export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATH
3.2、配置Mahout所需的Hadoop环境变量
(安装hadoopshi3已经做过了,所以不再演示)
不过之前没有加过 hadoop_conf_dir的得加一个,为了之后mahout在hadoop上运行时使用
/etc/profile.d
vim hadoop.sh
export HADOOP_CONF_DIR=${HADOOP_HOME}/conf
source mahout.sh, profile
启动mahout, 如果出现

mahout_local is not set, 这个,不要以为是错误信息

MAHOUT_LOCAL:设置是否本地运行,如果设置这个参数就不会运行hadoop了,一旦设置这个参数,那HADOOP_CONF_DIR 和HADOOP_HOME 这两个参数的设置就自动失效了。

四、测试 
启动Hadoop
start-all.sh
下载测试数据
synthetic_control.data
上传测试数据到hdfs
1:将样本数据集放到hdfs中指定文件下,应该在testdata文件夹下
hadoop fs -put synthetic_control.data /user/hadoop/testdata
2:使用Mahout中的kmeans聚类算法,执行命令:
mahout -core  org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
5.5 查看聚类结果
当然,此次安装我主要是为了实现协同过滤算法,所以之后我还会给的例子会是一个简单的实现了协调过滤算法的例子。待出新篇吧