zoukankan      html  css  js  c++  java
  • 利用Mahout实现在Hadoop上运行K-Means算法

    http://www.open-open.com/lib/view/open1386293551501.html

    一、介绍Mahout

        Mahout是Apache下的开源机器学习软件包,目前实现的机器学习算法主要包含有协同过滤/推荐引擎聚类分类三 个部分。Mahout从设计开始就旨在建立可扩展的机器学习软件包,用于处理大数据机器学习的问题,当你正在研究的数据量大到不能在一台机器上运行时,就 可以选择使用Mahout,让你的数据在Hadoop集群的进行分析。Mahout某些部分的实现直接创建在Hadoop之上,这就使得其具有进行大数据 处理的能力,也是Mahout最大的优势所在。相比较于WekaRapidMiner等 图形化的机器学习软件,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命令,检测系统是否安装成功。如图:

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

    注:此处修改环境变量有些网上提示是/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实现在Hadoop上运行K-Means算法

        四、总结

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

  • 相关阅读:
    Mac上的USB存储设备使用痕迹在新版操作系统有所变化
    Beware of the encrypted VM
    A barrier for Mobile Forensics
    Second Space could let suspect play two different roles easily
    Take advantage of Checkra1n to Jailbreak iDevice for App analysis
    Find out "Who" and "Where"
    Where is the clone one and how to extract it?
    Downgrade extraction on phones running Android 7/8/9
    高版本安卓手机的取证未来
    How to extract WeChat chat messages from a smartphone running Android 7.x or above
  • 原文地址:https://www.cnblogs.com/DjangoBlog/p/3524612.html
Copyright © 2011-2022 走看看