首页 > 编程语言 >利用Mahout实现在Hadoop上运行K-Means算法

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

时间:2023-03-22 16:32:36浏览次数:33  
标签:mahout 机器 Means hadoop Hadoop Mahout testdata


class="full-post-title">利用Mahout实现在Hadoop上运行K-Means算法

  一、介绍Mahout

    Mahout是Apache下的开源机器学习软件包,目前实现的机器学习算法主要包含有协同过滤/推荐引擎聚类分类三个部分。Mahout从设计开始就旨在建立可扩展的机器学习软件包,用于处理大数据机器学习的问题,当你正在研究的数据量大到不能在一台机器上运行时,就可以选择使用Mahout,让你的数据在Hadoop集群的进行分析。Mahout某些部分的实现直接创建在Hadoop之上,这就使得其具有进行大数据处理的能力,也是Mahout最大的优势所在。相比较于Weka,RapidMiner等图形化的机器学习软件,Mahout只提供机器学习的程序包(library),不提供用户图形界面,并且Mahout并不包含所有的机器学习算法实现,这一点可以算得上是她的一个劣势,但前面提到过Mahout并不是“又一个机器学习软件”,而是要成为一个“可扩展的用于处理大数据的机器学习软件”,但是我相信会有越来越多的机器学习算法会在Mahout上面实现。[1]

    二、介绍K-Means

相似度。相似度的计算根据一个簇中对象的平均值来进行。[2]

    三、在Hadoop上实现运行

    1,实验环境

hadoop集群环境:1.2.1 一个Master,两个Slaves,在开始运行kmeans时启动hadoop

        ②操作系统:所有机器的系统均为ubuntu12.04

版本:采用的是0.5版

    2,数据准备

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算法_hadoop

注:此处修改环境变量有些网上提示是/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,结果

后生成一个文件,如图

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

标签:mahout,机器,Means,hadoop,Hadoop,Mahout,testdata
From: https://blog.51cto.com/u_2650279/6142956

相关文章

  • hadoop 安装
    deban安装hadoop文档1.使用的kvm创建的虚拟机,创建虚拟机的同时创建hadoop用户建议使用最简单的安装方式2.配置/etc/network/interfaces文件3.配置/etc/hosts文......
  • m基于果蝇优化的K-means数据聚类分析matlab仿真
    1.算法描述果蝇优化算法FOA(FruitFlyOptimizationAlgorithm)是由台湾博士潘文超于2011年提出的,与蚁群算法和粒子群算法类似,是基于动物群体觅食行为演化出的一种寻求全局优......
  • hadoop-3.3.0集群环境搭建
    #1.配置三台机器的IP地址master10.43.80.80slave110.43.80.81slave210.43.80.82#2.关闭三台机器防火墙systemctlstopfirewalld.service#3.修改主机名对应IP地址,......
  • centos7通过CDH部署Hadoop
    一、角色分配及安装环境准备资料下载地址:链接:百度网盘1.机器及机器角色规划2.关闭防火墙及SELinux3.安装依赖(server)yuminstall-ycyrus-sasl-plaincyrus-sa......
  • Hadoop入门
    目录1️⃣、Hadoop概述1.1、Hadoop是什么1.2、三大发行版本1.3、优势1.4、组成HDFSYARNMapReduceHDFS、YARN、MapReduce三者关系1.6、大数据技术生态体系2️⃣、Hadoop运行环境......
  • hadoop全分布配置
    实验前的安装部署1.配置静态网络信息、[root@master~]#cd/etc/sysconfig/network-scripts/[root@masternetwork-scripts]#lsifcfg-ens33ifdown-isdnifdow......
  • hadoop集群运行
    无密码登录[hadoop@masterhadoop]$rpm-qa|grepopensshopenssh-server-7.4p1-16.el7.x86_64openssh-clients-7.4p1-16.el7.x86_64openssh-7.4p1-16.el7.x86_64[h......
  • ssh: connect to host hadoop0 port 22: no route to host问题出现
    问题关键在于noroutetohost1.首先考虑防火墙是否关闭在root模式下systemctlstopfirewalld.service #关闭防火墙systemctldisabledfirewalld.servi......
  • m基于kmeans和Cmeans算法的数据聚类仿真分析
    1.算法描述       K-means聚类算法是硬聚类算法,是典型的基于原型的目标函数聚类分析算法点到原型——簇中心的某种距离和作为优化的目标函数,采用函数求极值的方法......
  • 《Hadoop Operations》读书笔记 - 2 - 第三章 MapReduce
    MapReduce,在这里实际上有两个含义,一个是一种分布式计算模型;另一个是某种特定实现,比如ApacheHadoopMapReduce。其设计目的是为了简化大规模、分布式、高容错性的数据处理应......