实验7-3mahout分布式数据挖掘程序实现物品协同过滤_第1页
实验7-3mahout分布式数据挖掘程序实现物品协同过滤_第2页
实验7-3mahout分布式数据挖掘程序实现物品协同过滤_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Hadoop的数据挖利用Maven构建Mahout数据分析挖掘项目前Mahout是Hadoop一员,从血缘就继承了Hadoop程序的特点,支持HDFS和MapReduce分步式算法。随着Mahout的发展,从0.7版本开 做了重大的升级。移除了部分算法的单机内存计算,只支持基于Hadoop的MapReduce平行计算。从这点上,我们能看 Mahout大数据,坚持并行化的决心!相信Hadoop的大框架下,Mahout最终能成为一个大数据的产品Mahout开发环境介绍Mahout基于HadoopMahout实现协同过滤Mahout前提:配置好了基于MavenMahout的开发环境,将继续完成Mahout的分步式的程序开发。本文的mahout版本为0.8开发Win764bit/CentosJavaMavenEclipseJunoServiceReleaseMahoutHadoop找到项目的pom.xml,修改mahout版本为然后,自动依赖$mvnclean说明:在文档13-1中,由于mahout0.8去掉了单机内存算法,全部使用并行MapReduceAPI,cn.bigdata.mymahout.cluster06.Kmeans.java类的代码是基于mahout-0.6的,不能用0.8版本。Mahout基于Hadoop如上图所示,我们可以选择在win7中开发,也可以在linux中开发,开发过程我们可以在本地环境进行调试,标配的工具都是 Maven和Eclipse。Mahout在运行过程中,会把MapReduce的算法程序包,自动发布的 的集群环境中,这种开发和运行模式,就和真正的生产环境差不多了。用Mahout实现协同过滤实现步骤1.准备数据文件:item.csv(数据文件在项目的 中2.Java程序3.Java程序4.运行5.推荐结准备数据文件上传测试数据到 HDFS,单机内存实验请参考文档 #hadoopfs-mkdir/user/mahout/userCF#hadoopfs-copyFromLocal#hadoopfs-catJava程序HdfsDAO.java,是一个HDFS操作的工具,用API实现Hadoop的各HDFS命令(联想结合一下上次培训的项目我们这里会用到HdfsDAO.java类中的一些方法:HdfsDAOhdfs=newHdfsDAO(HDFS,conf);hdfs.copyFile(localFile,inPath);Java程序用Mahout实现分步式算法,我们看Mahout的解释实现程序:package importimportorg.apache.mahout.cf.taste importcn.bigdata.mymahout.hdfs.HdfsDAO;publicclassItemCFHadoopprivatestaticfinalStringHDFS=publicstaticvoidmain(String[]args)throws{StringlocalFile="datafile/item.csv";StringinPath=HDFS+"/user/mahout/userCF";StringinFile=inPath+"/item.csv";StringoutPath=HDFS+"/user/mahout/userCF/result/";StringoutFile=outPath+"/part-r-00000";StringtmpPath=HDFS+"/tmp/"+JobConfconf=HdfsDAOhdfs=newHdfsDAO(HDFS,conf);StringBuildersb=newStringBuilder();sb.append("--input").append(inPath);sb.append("--output").append(outPath);sb.append("--booleanDatatrue");sb.append("--similarityClassnamesb.append("--tempDir").append(tmpPath);args=sb.toString().split("");menderJobjob=new }publicstaticJobConfconfig()JobConfconf=newJobConf(ItemCFHadoop.class);returnconf;}}menderJob.java,实际上就是封装了上面整个图的分步式并行算法的执行过程如果没有这层封装,我们需要自己去实现图中8个步骤MapReduce运行程序控制台输出:cat:hdfs://10:9000/user/hdfs/userCF/item.csv….........................(中间很多MapReduce执行的日志消息 hdfs://master:9000/user/mahout/userCF/result//part-r- 我们可以把上面的日志分解析成3a.初始化环b.算法c.打印推初始化HDFS的数 和工 ,并上传数据文件delete:hdfs://master:9000/user/mahout/userCFCreate:copyfrom:datafile/item.csvto算法执行分别执行,上图中对应的8种MapReduce算法Jobcomplete:job_local_0001Jobcomplete:job_local_0002Jobcomplete:job_local_0003Jobcomplete:job_local_0004Job

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论