mahout 0.9 连接mysql_Hadoop2.2+Mahout0.9实战

版本:Hadoop2.2.0,mahout0.9。

使用mahout的org.apache.mahout.cf.taste.hadoop.item.RecommenderJob进行测试。

首先说明下,如果使用官网提供的下载hadoop2.2.0以及mahout0.9进行调用mahout的相关算法会报错。一般报错如下:

java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected

at org.apache.mahout.common.HadoopUtil.getCustomJobName(HadoopUtil.java:174)

at org.apache.mahout.common.AbstractJob.prepareJob(AbstractJob.java:614)

at org.apache.mahout.cf.taste.hadoop.preparation.PreparePreferenceMatrixJob.run(PreparePreferenceMatrixJob.java:73)

at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)

这个是因为目前mahout只支持hadoop1 的缘故。在这里可以找到解决方法:https://issues.apache.org/jira/browse/MAHOUT-1329。主要就是修改pom文件,修改mahout的依赖。

大家可以下载修改后的源码包

1、(Mahout0.9源码(支持Hadoop2))

2、自己编译Mahout(mvn clean install -Dhadoop2 -Dhadoop.2.version=2.2.0 -DskipTests),或者直接下载已经编译好的jar包。

------------------------------------------分割线------------------------------------------

用户名:ftp1.linuxidc.com

密码:www.linuxidc.com

在 2014年LinuxIDC.com\4月\Hadoop2.2+Mahout0.9实战

------------------------------------------分割线------------------------------------------

接着,按照这篇文章建立eclipse的环境:http://blog.csdn.net/fansy1990/article/details/22896249。环境配置好了之后,需要添加mahout的jar包,下载前面提供的jar包,然后导入到java工程中。

编写下面的java代码:

package fz.hadoop2.util;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.yarn.conf.YarnConfiguration;

public class Hadoop2Util {

private static Configuration conf=null;

private static final String YARN_RESOURCE="node31:8032";

private static final String DEFAULT_FS="hdfs://node31:9000";

public static Configuration getConf(){

if(conf==null){

conf = new YarnConfiguration();

conf.set("fs.defaultFS", DEFAULT_FS);

conf.set("mapreduce.framework.name", "yarn");

conf.set("yarn.resourcemanager.address", YARN_RESOURCE);

}

return conf;

}

}

===============================================

相关阅读:

===============================================

package fz.mahout.recommendations;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.util.ToolRunner;

import org.apache.mahout.cf.taste.hadoop.item.RecommenderJob;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

import fz.hadoop2.util.Hadoop2Util;

/**

* 测试mahout org.apache.mahout.cf.taste.hadoop.item.RecommenderJob

* environment:

* mahout0.9

* hadoop2.2

* @author fansy

*

*/

public class RecommenderJobTest{

//RecommenderJob rec = null;

Configuration conf =null;

@Before

public void setUp(){

// rec= new RecommenderJob();

conf= Hadoop2Util.getConf();

System.out.println("Begin to test...");

}

@Test

public void testMain() throws Exception{

String[] args ={

"-i","hdfs://node31:9000/input/user.csv",

"-o","hdfs://node31:9000/output/rec001",

"-n","3","-b","false","-s","SIMILARITY_EUCLIDEAN_DISTANCE",

"--maxPrefsPerUser","7","--minPrefsPerUser","2",

"--maxPrefsInItemSimilarity","7",

"--outputPathForSimilarityMatrix","hdfs://node31:9000/output/matrix/rec001",

"--tempDir","hdfs://node31:9000/output/temp/rec001"};

ToolRunner.run(conf, new RecommenderJob(), args);

}

@After

public void cleanUp(){

}

}0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值