使用Mahout实现在Hadoop上运转KITeye - AG环亚娱乐

使用Mahout实现在Hadoop上运转KITeye

2019-01-14 05:08:04 | 作者: 轩昂 | 标签: 运转,机器,学习 | 浏览: 264

    Mahout是Apache下的开源机器学习软件包,现在完成的机器学习算法首要包括有协同过滤/引荐引擎,聚类和分类三个部分。Mahout从规划开端就旨在树立可扩展的机器学习软件包,用于处理大数据机器学习的问题,当你正在研讨的数据量大到不能在一台机器上运转时,就能够挑选运用Mahout,让你的数据在Hadoop集群的进行剖析。Mahout某些部分的完成直接创建在Hadoop之上,这就使得其具有进行大数据处理的才能,也是Mahout最大的优势地点。相比较于Weka,RapidMiner等图形化的机器学习软件,Mahout只供给机器学习的程序包(library),不供给用户图形界面,而且Mahout并不包括一切的机器学习算法完成,这一点能够算得上是她的一个下风,但前面提到过Mahout并不是“又一个机器学习软件”,而是要成为一个“可扩展的用于处理大数据的机器学习软件”,可是我信任会有越来越多的机器学习算法会在Mahout上面完成。[1]

    二、介绍K-Means

    https://cwiki.apache.org/confluence/display/MAHOUT/K-Means+Clustering#,这是Apache官网上的算法描绘,简略来说就是依据区分的聚类算法,把n个目标分为k个簇,以使簇内具有较高的类似度。类似度的核算依据一个簇中目标的平均值来进行。[2]

    三、在Hadoop上完成运转     1,试验环境

        ①hadoop集群环境:1.2.1 一个Master,两个Slaves,在开端运转kmeans时发动hadoop

        ②操作体系:一切机器的体系均为ubuntu12.04

        ③Mahout版别:选用的是0.5版

    2,数据预备

        数据选用的是http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data,这是网上供给的一个比较不错是数据源。然后用指令 hadoop fs -put /home/hadoop/Desktop/data testdata,将在我桌面的文件data上传到HDFS的testdata目录下,这儿为什么是testdata,我也正在考虑,由于我本来是上传到input里,可是运转时提示could not find ….user/testdata之类的,所以现改为了testdata。

    3,运转

        ①装备Mahout环境:在Apache官网下载Mahout的版别,我挑选的是0.5,下载地址:https://cwiki.apache.org/confluence/display/MAHOUT/Downloads。然后解压到你指定的目录,将此目录途径写入/etc/profile,增加如下句子:

export MAHOUT_HOME=/home/hadoop/hadoop-1.2.1/mahout-distribution-0.5

export HADOOP_CONF_DIR=/home/hadoop/hadoop-1.2.1/conf

export PATH=$PATH:/home/hadoop/hadoop-1.2.1/bin:$MAHOUT_HOME/bin

然后履行 source /etc/profile。在mahout目录下履行bin/mahout指令,检测体系是否装置成功。如图:

注:此处修正环境变量有些网上提示是/etc/bash.bashrc,我也试着修正过,可是发现在我这儿使环境变量收效的是profile。

②运转Mahout里自带的K-Means算法,bin/mahout org.apache.mahout.clustering.syntheticcontrol.kmeans.Job,这儿发动后遇到了一点问题,提示Could not find math.vector,后来参阅这篇http://jerrylead.iteye.com/blog/1188929日志处理。

    4,成果

       在我的环境下运转5分钟左右,最终生成一个文件,如图

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表AG环亚娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章