部署Mahout

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了部署Mahout相关的知识,希望对你有一定的参考价值。

一、Mahout简介


Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Apache Mahout项目已经发展到了它的第三个年头,目前已经有了三个公共发行版本。Mahout包含许多实现,包括集群、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。

技术分享(就是他,骑在象头上的那个Mahout)技术分享 



在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环境变量

# set mahout environment

export MAHOUT_HOME=/home/yujianxin/mahout/mahout-distribution-0.9

export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf

export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATH

3.2、配置Mahout所需的Hadoop环境变量

 # set hadoop environment

export HADOOP_HOME=/home/yujianxin/hadoop/hadoop-1.1.2 
export HADOOP_CONF_DIR=$HADOOP_HOME/conf 

export PATH=$PATH:$HADOOP_HOME/bin

export HADOOP_HOME_WARN_SUPPRESS=not_null


四、验证Mahout是否安装成功

        执行命令mahout。若列出一些算法,则成功,如图:

        技术分享

       

五、使用Mahout 之入门级使用

5.1、启动Hadoop

5.2、下载测试数据

           http://archive.ics.uci.edu/ml/databases/synthetic_control/链接中的synthetic_control.data

5.3、上传测试数据

hadoop fs -put synthetic_control.data /user/root/testdata

5.4  使用Mahout中的kmeans聚类算法,执行命令:

mahout -core  org.apache.mahout.clustering.syntheticcontrol.kmeans.Job

花费9分钟左右完成聚类 。 

5.5 查看聚类结果

    执行hadoop fs -ls /user/root/output,查看聚类结果。技术分享

方法二、 Mahout安装与配置

Mahout是Hadoop的一种高级应用。运行Mahout需要提前安装好Hadoop。Hadoop的安装网上很多,并不复杂,这里不再讲述,接下来阐述怎么安装Mahout。
1:下载二进制解压安装。
到http://labs.renren.com/apache-mirror/mahout/0.7下载,我选择下载二进制包,直接解压及可。

[email protected]:~$ tar -zxvf mahout-distribution-0.7.tar.gz


2:配置环境变量:在/etc/profile,/home/hadoop/.bashrc中添加如下红色信息
#set java environment
MAHOUT_HOME=/home/hadoop/mahout-distribution-0.7
PIG_HOME=/home/hadoop/pig-0.9.2
HBASE_HOME=/home/hadoop/hbase-0.94.3
HIVE_HOME=/home/hadoop/hive-0.9.0
HADOOP_HOME=/home/hadoop/hadoop-1.1.1
JAVA_HOME=/home/hadoop/jdk1.7.0
PATH=$JAVA_HOME/bin:$PIG_HOME/bin:$MAHOUT_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/conf:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$HBASE_HOME/lib:$MAHOUT_HOME/lib:$PIG_HOME/lib:$HIVE_HOME/lib:$JAVA_HOME/lib/tools.jar
export MAHOUT_HOME
export PIG_HOME
export HBASE_HOME
export HADOOP_HOME
export JAVA_HOME
export HIVE_HOME
export PATH
export CLASSPATH

3:启动hadoop,也可以用伪分布式来测试

4:mahout --help    #检查Mahout是否安装完好,看是否列出了一些算法

5:mahout使用准备
a.下载一个文件synthetic_control.data,下载地址http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data,并把这个文件放在$MAHOUT_HOME目录下。

b.启动Hadoop:$HADOOP_HOME/bin/start-all.sh

c.创建测试目录testdata,并把数据导入到这个tastdata目录中(这里的目录的名字只能是testdata)

[email protected]:~/$ hadoop fs -mkdir testdata #
[email protected]:~/$ hadoop fs -put /home/hadoop/mahout-distribution-0.7/synthetic_control.data testdata


d.使用kmeans算法(这会运行几分钟左右)

[email protected]:~/$ hadoop jar /home/hadoop/mahout-distribution-0.7/mahout-examples-0.7-job.jar org.apache.mahout.clustering.syntheticcontrol.kmeans.Job


e.查看结果

[email protected]:~/$ hadoop fs -lsr output

如果看到以下结果那么算法运行成功,你的安装也就成功了。
clusteredPoints  clusters-0  clusters-1  clusters-10  clusters-2  clusters-3  clusters-4 clusters-5  clusters-6  clusters-7  clusters-8  clusters-9  data


本文出自 “李世龙” 博客,谢绝转载!

以上是关于部署Mahout的主要内容,如果未能解决你的问题,请参考以下文章

在 hadoop 集群上部署 Mahout

hadoop+mahout部署及20newsgroups经典算法测试

在 mahout-0.6 上的“Mahout in Action”中运行示例代码时出现 IOException

导致资产预编译在heroku部署上失败的代码片段

在 java 代码中使用 mahout,而不是 cli

在“Mahout in Action”中运行示例代码时出现 IOException