天天看點

部署Mahout 方法二、 Mahout安裝與配置

一、Mahout簡介

Mahout 是 Apache Software Foundation(ASF) 旗下的一個開源

項目 ,提供一些可擴充的 機器 學習領域經典 算法 的實作,旨在幫助開發人員更加友善快捷地建立智能應用程式。Apache Mahout項目已經發展到了它的第三個年頭,目前已經有了三個公共發行版本。Mahout包含許多實作,包括叢集、分類、推薦過濾、頻繁子項挖掘。此外,通過使用 Apache Hadoop 庫,Mahout 可以有效地擴充到雲中。
部署Mahout 方法二、 Mahout安裝與配置
(就是他,騎在象頭上的那個Mahout)
部署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 方法二、 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安裝與配置

方法二、  Mahout安裝與配置

Mahout是Hadoop的一種進階應用。運作Mahout需要提前安裝好Hadoop。Hadoop的安裝網上很多,并不複雜,這裡不再講述,接下來闡述怎麼安裝Mahout。

1:下載下傳二進制解壓安裝。

到http://labs.renren.com/apache-mirror/mahout/0.7下載下傳,我選擇下載下傳二進制包,直接解壓及可。

hadoop@ubuntu:~$ 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)

hadoop@ubuntu:~/$ hadoop fs -mkdir testdata #
hadoop@ubuntu:~/$ hadoop fs -put /home/hadoop/mahout-distribution-0.7/synthetic_control.data testdata      

d.使用kmeans算法(這會運作幾分鐘左右)

hadoop@ubuntu:~/$ hadoop jar /home/hadoop/mahout-distribution-0.7/mahout-examples-0.7-job.jar org.apache.mahout.clustering.syntheticcontrol.kmeans.Job      

e.檢視結果

hadoop@ubuntu:~/$ 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