资讯专栏INFORMATION COLUMN

利用Mahout实现在Hadoop上运行K-Means算法

MyFaith / 528人阅读

摘要:某些部分的实现直接创建在之上,这就使得其具有进行大数据处理的能力,也是较大的优势所在。在目录下执行命令,检测系统是否安装成功。运行里自带的算法,,这里启动后遇到了一点问题,提示,后来参考这篇日志解决。

转载请注明出处: http://hanlaiming.freetzi.com/?p=144

 

    一、介绍Mahout

    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分钟左右,最后生成一个文件,如图

    四、总结

        Mahout是一个很强大的数据挖掘工具,需要进行更深层的了解。

    五、参考文献

        [1].Mahout与聚类分析    http://yoyzhou.github.io/blog/2013/05/26/clustering-with-mahout/

        [2]. http://zh.wikipedia.org/zh-cn/K%E5%B9%B3%E5%9D%87%E7%AE%97%E6%B3%95

 

本文转载自:http://my.oschina.net/u/181485/blog/178279

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/3841.html

相关文章

  • Mahout学习路线图

    摘要:就是训象人,在上创造新的智慧目录介绍学习路线图我的学习经历的使用案例介绍是基于的机器学习和数据挖掘的一个分布式框架。学习路线图知识点,我已经列在图中,希望帮助其他人更好的了解。 Hadoop家族系列文章, 主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukw...

    pubdreamcc 评论0 收藏0
  • Hadoop大数据生态系统及常用组件简介

    摘要:大数据存储,利用的分布式存储能力,例如数据备份数据仓库等。大数据处理,利用的分布式处理能力,例如数据挖掘数据分析等。应用程序管理器负责管理整个系统中所有应用程序,包括应用程序的提交与调度器协商资源以启动监控运行状态并在失败时重新启动等。 经过多年信息化建设,我们已经进入一个神奇的大数据时代,无论是在通讯社交过程中使用的微信、QQ、电话、短信,还是吃喝玩乐时的用到的团购、电商、移动支付,...

    BenCHou 评论0 收藏0
  • Hadoop家族学习路线图

    摘要:本文为家族开篇,家族学习路线图目录家族产品家族学习路线图家族产品截止到年,根据的统计,家族产品已经达到个接下来,我把这个产品,分成了类。家族学习路线图下面我将分别介绍各个产品的安装和使用,以我经验总结我的学习路线。 Hadoop家族系列文章, 主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, ...

    includecmath 评论0 收藏0
  • 福布斯:Hadoop——你不得不了解的大数据工具

    摘要:框架成为当今大数据处理背后的最具影响力的发动机。机器学习各类组织需求的不同导致相关的数据形形色色,对这些数据的分析也需要多样化的方法。提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。 Hadoop带来了廉价的处理大数据(大数据的数据容量通常是10-100GB或更多,同时数据种类多种多样,包括结构化、非结构化等)的能力。但这与之前有什么不同?现今企业...

    jsyzchen 评论0 收藏0
  • 想学大数据?大数据处理的开源框架推荐

    摘要:大数据通常是不确定的,而多数处理框架已经适应了这一特性。正如其名,大数据通常以其大量的数据为特征,而这要求巨大乃至理论上无限的存储容量。栈是大数据处理框架的祖师爷,并且已经成为这些技术汇集的事实上的平台。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文讨论大数据处理生态系统和相关的架构栈,包括对适应于不同任务的多种框架特性的调研。除此之外,文章还从多个层次对框架进行...

    ralap 评论0 收藏0

发表评论

0条评论

MyFaith

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<