Mahout 仅提供一些java的算法包,通过Mahout执行这些算法包,并把hdfs上的文件作为输入可以在hadoop上做分布式计算
提供的常用算法
Mahout
提供了常用算法的程序库,可以基于分布式做数据挖掘.
常见算法
回归算法:用于预测(日期交易量预测等等)。
比如身高和体重作为x,y坐标,给出一组人的身高体重,形成作为图上的一个个点(学习集),
计算出一条直线或者抛物曲线,能够离所有点综合距离最小。
那么可以任意给出身高,根据给出的曲线预测出相应的体重。
-------------------------------------------------------------
分类器
依据以往的数据样本,做出一个分类器(或者说分类函数),对现有的数据进行分类。
通常是二分函数
贝叶斯分类器 概率分类器
常用于垃圾邮件的分类,将邮件内容进行分词,发现词语高频率属于垃圾邮件的词汇,
判断出此邮件是否为垃圾邮件的概率。
---------------------------------------------------------------
聚类(K-Means)
根据数据的共同特性,进行归类。
比如动物的进化树,通过分析DNA做聚类,可以计算出哪些生物是有亲缘关系。
------------------------------------------------------------------
频繁数据挖掘
依据以往数据样本,计算出物品共同出现的概率。
可以做推荐系统
-------------------------------------------------------------------
传统数据分析工具的困境
R,SAS,SPSS等典型应用场景为实验室工具
处理的数据需要先读入内存,因此数据量受限于内存,无法处理海量数据。
使用Oracle数据等处理海量数据,但缺乏有效快速专业分析功能。
可以采用抽样等方法,但有局限性。比如聚类,推荐系统无法使用抽样
解决方向:hadoop集群和Map-Reduce并行计算
Mahout的主要目的是实现可伸缩的机器学习算法(就是算法的M-R化)。
目的是帮组开发人员建立具有机器智能的应用程序。
1.频繁模式挖掘
2.聚类算法
3.分类器
4.推荐系统
5.频繁子项挖掘
Mahout安装与配置
Ubuntu下基于Hadoop 2.6.2的Mahout 0.12.1安装和使用
环境:
Ubuntu Server 14.04.04 amd64 Hadoop 2.6.2
参考:
http://itindex.net/detail/49323-mahout-%E5%AD%A6%E4%B9%A0-mahout
新版的配置有略微改动
1、下载
http://mirror.bit.edu.cn/apache/mahout/0.12.1/
apache-mahout-distribution-0.12.1.tar.gz
2、解压
tar -zxvf mahout-distribution-0.12.1.tar.gz
3、环境变量
3.1、配置Mahout环境变量
# set mahout environment
export MAHOUT_HOME=/usr/local/mahout/mahout-distribution-0.12.1
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=/usr/local/hadoop/hadoop-2.6.2
export MAHOUT_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export HADOOP_HOME_WARN_SUPPRESS=not_null
四、验证Mahout是否安装成功
$mahout,执行
若列出一些算法,则成功
root@spark:/usr/local/mahout/apache-mahout-distribution-0.12.1# mahout
MAHOUT_LOCAL is not set; adding HADOOP_CONF_DIR to classpath.
Running on hadoop, using /usr/local/hadoop/hadoop-2.6.2/bin/hadoop and HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-2.6.2/conf
MAHOUT-JOB: /usr/local/mahout/apache-mahout-distribution-0.12.1/mahout-examples-0.12.1-job.jar
An example program must be given as the first argument.
Valid program names are:
arff.vector: : Generate Vectors from an ARFF file or directory
baumwelch: : Baum-Welch algorithm for unsupervised HMM training
canopy: : Canopy clustering
cat: : Print a file or resource as the logistic regression models would see it
cleansvd: : Cleanup and verification of SVD output
clusterdump: : Dump cluster output to text
clusterpp: : Groups Clustering Output In Clusters
cmdump: : Dump confusion matrix in HTML or text formats
。。。
五、Mahout使用(一)
5.1、启动Hadoop
(Hadoop安装可参考本人其他博文的链接)
/usr/local/hadoop/hadoop-2.6.2/sbin/start-dfs.sh
/usr/local/hadoop/hadoop-2.6.2/sbin/start-yarn.sh
./mr-jobhistory-daemon.sh start historyserver
5.2、下载测试数据