用Maven创建Mahout环境详细过程

本文详细介绍了如何使用Maven创建Mahout环境,包括Maven的下载、安装、配置,以及在Eclipse中安装Maven插件、配置Maven设置、创建并运行Mahout项目的过程,最后展示了通过Maven成功运行Mahout协同过滤推荐算法的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用Maven创建Mahout环境详细过程

Maven下载

Maven可以去http://maven.apache.org/download.cgi下载

Maven安装

  • 解压下载的包文件apache-maven-3.3.9-bin.tar.gz到/usr目录下
  • 配置环境变量:
    编辑/etc/profile文件,添加如下代码:
 #set maven enviroemnt
 export MAVEN_HOME=/usr/maven
 export PATH=${PATH}:${MAVEN_HOME}/bin
  • 保存文件,并运行如下命令使环境变量生效
    source /etc/profile
  • 在控制台输入如下命令,验证maven是否安装成功
    mvn -version或者mvn -v

出现如下版本信息说明maven安装成功!

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /usr/maven
Java version: 1.8.0_51, vendor: Oracle Corporation
Java home: /usr/java/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-514.el7.x86_64", arch: "amd64", family: "unix"

Maven配置

Maven安装目录下的各文件夹介绍:

  • /bin:包含maven运行的脚本
  • /boot:包含一个类加载器框架
  • /lib:包含所有Maven运行时需要的java类库
  • /conf:包含重要文件setting.xml
    全局配置: ${M2_HOME}/conf/settings.xml

    用户配置: ${user.home}/.m2/settings.xml
    note:用户配置优先于全局配置。

修改maven本地仓库的位置

MAVEN_HOME/conf目录下settings.xml文件是Maven的配置文件,里面有maven本地仓库的位置信息。
Maven 的仓库默认是放在本地用户的临时文件夹下面的 .m2 文件夹下的 repository 下,现在需要修改它到我们自己指定的路径下。
我指定的仓库位置为:/usr/maven/repository目录(后来重新配置的时候没有配置仓库地址啦,如果不配就是默认的路径啦,${user.home}/.m2/repository,配不配应该都没太大的关系)
于是在settings.xml中增加一行:

<localRepository>/usr/maven/repository</localRepository> 

配置镜像

参考配置文档 修改镜像文件,修改为国内的镜像源可以加快maven配置过程中文件的下载速度,强烈建议修改镜像,本人之前由于没有修改镜像,导致耽误大量时间!
配置镜像参考博客地址:http://blog.youkuaiyun.com/Wee_Mita/article/details/60317352
一下为几个镜像地址,可以参考选择其一进行配置。

<mirrors>  
    <mirror>  
        <id>alimaven</id>  
        <mirrorOf>central</mirrorOf>  
        <name>aliyun maven</name>  
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
    </mirror>  

    <mirror>  
        <id>ui</id>  
        <mirrorOf>central</mirrorOf>  
        <name>Human Readable Name for this Mirror.</name>  
        <url>http://uk.maven.org/maven2/</url>  
    </mirror>  

    <mirror>  
        <id>jboss-public-repository-group</id>  
        <mirrorOf>central</mirrorOf>  
        <name>JBoss Public Repository Group</name>  
        <url>http://repository.jboss.org/nexus/content/groups/public</url>  
    </mirror>  
</mirrors>

到此完成对maven的初步配置,运行命令,下载maven的帮助文件:

mvn help:system

运行该命令后会下载一下pom文件和jar文件,这些文件都被下载到了maven的本地仓库。
执行了好几遍这个命令,终于显示build success了,什么都没改,只是重复执行这个命令,最后就成功了。显示内容如下:

XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME
OLDPWD=/usr/maven/conf
HISTCONTROL=ignoredups
GPG_AGENT_INFO=/run/user/1000/keyring/gpg:0:1
WINDOWPATH=1
HOME=/root
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Vz6oojjs3V,guid=af0183c9143332da97ce40b658e4612a
PWD=/usr/maven/conf
USERNAME=hadoop
XDG_SEAT=seat0
XDG_MENU_PREFIX=gnome-
NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat
GDMSESSION=gnome-classic
USER=hadoop
JAVA_HOME=/usr/java
CLASSPATH=.:/usr/java/lib:/usr/java/jre//lib:
TERM=xterm-256color
MAVEN_CMD_LINE_ARGS= help:system
GDM_LANG=zh_CN.UTF-8
SSH_AGENT_PID=2849
MAVEN_PROJECTBASEDIR=/usr/maven/conf
XDG_VTNR=1

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.795 s
[INFO] Finished at: 2017-04-06T15:31:26+08:00
[INFO] Final Memory: 12M/58M
[INFO] ------------------------------------------------------------------------

eclipse安装maven插件

eclipse安装maven插件一共有两种方法:
1.在线安装(我采用线安装成功)
详细的maven在线安装步骤可以参考如下博客:
maven在线安装步骤:http://blog.youkuaiyun.com/u011414200/article/details/48158937

Index downloads are disabled, search results may be incomplete问题解决办法:
http://www.cnblogs.com/AloneSword/p/4146884.html
http://blog.youkuaiyun.com/isea533/article/details/12197127(更新过程需要等待一段时间,耐心等待)

2.link安装方式

安装完毕后可以通过Help > About Eclipse> Installation Details确认已安装的插件。可以看到
安装成功
这里不再详细说

修改eclipse中的maven地址

windows->preference->Maven:记得勾选红框中的项
这里写图片描述

这里修改为本机上maven的安装路径:
这里写图片描述

修改eclipse中的maven的setting文件的路径

这里写图片描述

创建maven项目

按照如下图片进行创建:
1)
这里写图片描述
2)
这里写图片描述
3)
这里写图片描述
4)
这里写图片描述
5)这样就创建好了一个maven的工程,但是还有一些地方要修改
这里写图片描述
6)修改java为自己的java版本:
点击创建的maven项目,右键->java build path->选择上面的libraries->删除原本的JRE1.5->选择右边的Add Library->选择JRE System Library->选择workspace default JRE。

使用Maven创建Mahout项目

双击pom.xml文件,在右边的面板中会出现Dependencies,点击Add,在弹出的对话框中输入mahout,Maven便会搜索相关包,选择mahout-core,确定。
这里写图片描述
可能会出来无法搜索出来的情况,不用怕,有解决办法。

参考这两个博客进行设置,下载过程中不要着急,耐心等待!http://blog.youkuaiyun.com/isea533/article/details/12197127
http://www.cnblogs.com/AloneSword/p/4146884.html
windows-》show view->maven->maven repositories.
global repositories->右键updata index
global repositories->右键选择full index enabled
耐心等待下载完,这样一般就不会存在搜索不出来的情况了!

编写代码,运行程序

新建一个CF.java,对其进行编辑。尝试写了一个协同过滤推荐算法。完整代码如下:

import org.apache.mahout.cf.taste.impl.model.file.*;
import org.apache.mahout.cf.taste.impl.neighborhood.*;
import org.apache.mahout.cf.taste.impl.recommender.*;
import org.apache.mahout.cf.taste.impl.similarity.*;
import org.apache.mahout.cf.taste.model.*;
import org.apache.mahout.cf.taste.neighborhood.*;
import org.apache.mahout.cf.taste.recommender.*;
import org.apache.mahout.cf.taste.similarity.*;

import java.io.File;
import java.util.*;

public class CF {

    private CF(){};
    public static void main(String args[]) throws Exception{
        //step:1.build model;2.similarity calculation;3.select neighbor;4.build recommendation system
        DataModel model=new FileDataModel(new File("/home/hadoop/intro.csv"));//装载数据文件
        UserSimilarity similarity = new PearsonCorrelationSimilarity(model);//对输入数据计算皮尔森相似度
        UserNeighborhood neighborhood=new NearestNUserNeighborhood(2,similarity,model);//计算最近邻
        Recommender recommender=new GenericUserBasedRecommender(model,neighborhood,similarity);//生成推荐引擎
       List<RecommendedItem> recommendations=recommender.recommend(1, 2);//为用户1推荐2个物品
       for(RecommendedItem recommendation:recommendations){
           System.out.println(recommendation);
       }
    }
}

输入文件intro.csv文件放在/home/hadoop目录下,文件的内容为

1,101,5
1,102,3
1,103,2.5
2,101,2
2,102,2.5
2,103,5
2,104,2
3,101,2.5
3,104,4
3,105,4.5
3,107,5
4,101,5
4,103,3
4,104,4.5
4,106,4
5,101,4
5,102,3
5,103,2
5,104,4
5,105,3.5
5,106,4

运行程序,选择java application,得到输出结果如下:
这里写图片描述
可以看到,算法为用户1推荐了两个商品,分别是物品104和物品106。

另外:运行结果中有3行警告,说是slf4j里面的StaticLoggerBinder加载失败,虽说它不影响程序运行结果,但看着实在烦人,解决办法是再次编辑pom.xml的dependencies,添加一个slf4j-nop包即可。
这里参考了博客:http://www.tuicool.com/articles/rmiEz2
博客到这里就结束啦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值