mahout0.9 测试

环境: hadoop2.2.0  + mahout0.9
hadoop1 192.168.100.171 (namenode、secondarynamenode、resourcemanager、mahout)
hadoop2 192.168.100.172 (datanode、nodemanager)
hadoop3 192.168.100.173 (datanode、nodemanager)
hadoop4 192.168.100.174 (datanode、nodemanager)
hadoop5 192.168.100.175 (datanode、nodemanager)

一:安装mahout0.9
[root@hadoop1 hadoop]# tar zxf /mnt/mydisk/soft/hadoop/mahout/mahout-distribution-0.9.tar.gz 
[root@hadoop1 hadoop]# tar zxf /mnt/mydisk/soft/hadoop/mahout/mahout-distribution-0.9-src.tar.gz 
[root@hadoop1 hadoop]# mv mahout-distribution-0.9 mahout09
[root@hadoop1 hadoop]# chown -R hadoop:hadoop mahout09
[root@hadoop1 hadoop]# vi /etc/profile
   
   
export HADOOP_PREFIX=/app/hadoop/hadoop220
export HADOOP_COMMON_HOME=${HADOOP_PREFIX}
export HADOOP_CONF_DIR=${HADOOP_PREFIX}/etc/hadoop
export MAHOUT_HOME=/app/hadoop/mahout09
export MAHOUT_CONF_DIR=/app/hadoop/mahout09/conf
export PATH=${MAHOUT_HOME}/conf:${MAHOUT_HOME}/bin:$PATH
[root@hadoop1 hadoop]# source /etc/profile
[root@hadoop1 hadoop]# su - hadoop
[hadoop@hadoop1 ~]$ cd /app/hadoop/mahout09/
[hadoop@hadoop1 mahout09]$ bin/mahout
mahout0.9 测试 - mmicky - mmicky 的博客
 

二:聚类测试
Synthetic_control.data数据集下载地址
该数据集含有600行60列数据,每100行代表一种趋势图,共6种,具体说明参看:
运行例程指南
注意使用synthetic_control.data测试时要先上传至hdfs://hadoop1:8000/user/hadoop/testdata
命令行使用方法
$MAHOUT_HOME/bin/mahout org.apache.mahout.clustering.syntheticcontrol.${clustering.type}.Job
${clustering.type} 可以是canopy、kmeans、fuzzykmeans、dirichlet其中一种,比如使用kmeans使用如下命令:
$MAHOUT_HOME/bin/mahout org.apache.mahout.clustering.syntheticcontrol.kmeans.Job

实验:
[hadoop@hadoop1 hadoop220]$ sbin/start-dfs.sh
[hadoop@hadoop1 hadoop220]$ sbin/start-yarn.sh
[hadoop@hadoop1 hadoop220]$ bin/hdfs dfs -mkdir -p /user/hadoop/testdata
[hadoop@hadoop1 hadoop220]$ bin/hdfs dfs -put /app/data/synthetic_control.data /user/hadoop/testdata/
[hadoop@hadoop1 hadoop220]$ cd ../mahout09/
[hadoop@hadoop1 mahout09]$ bin/mahout org.apache.mahout.clustering.syntheticcontrol.kmeans.Job
mahout0.9 测试 - mmicky - mmicky 的博客
 
mahout0.9 测试 - mmicky - mmicky 的博客
 
三:分类器测试
mahout 0.8之后 20newsgroups的例程使用方法已经改变了,只需要直接运行一个脚本classify-20newsgroups.sh就可以了,但是在hadoop2.2.0上运行会出现错误,下面是hadoop2.2.0下运行情况:
[hadoop@hadoop1 hadoop220]$ bin/hdfs dfs -mkdir -p /tmp/mahout-work-hadoop/20news-all
[hadoop@hadoop1 mahout09]$ export HADOOP_HOME=/app/hadoop/hadoop220
以上两点要先做到,不然classify-20newsgroups.sh脚本运行会发生下载下来的样本数据无法上载、建模无法进行等问题。
[hadoop@hadoop1 mahout09]$ ./examples/bin/classify-20newsgroups.sh
mahout0.9 测试 - mmicky - mmicky 的博客
 
修改/etc/profile并source,然后切换到 hadoop1.2.0 下运行该脚本,能正常运行,结果如下:
mahout0.9 测试 - mmicky - mmicky 的博客
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来回答你的问题。首先,Mahout是一个基于Hadoop的机器学习框架,可以用于实现各种机器学习算法,包括协同过滤推荐算法。Mahout中的推荐算法实现了多种模型,包括基于用户的协同过滤、基于物品的协同过滤和隐式反馈等。 而你的问题是如何使用Mahout 0.9版本中的ReloadFromJDBCDataModel连接MySQL,并采用SVD推荐算法。下面是具体的步骤: 1. 首先,你需要在MySQL中创建一个数据表,用于存储用户和物品之间的评分数据。数据表至少需要包含三个字段:用户ID、物品ID和评分值。可以使用以下SQL语句创建数据表: ``` CREATE TABLE ratings ( user_id INT NOT NULL, item_id INT NOT NULL, rating FLOAT NOT NULL, PRIMARY KEY (user_id, item_id) ); ``` 2. 然后,在Mahout中使用ReloadFromJDBCDataModel类连接MySQL数据库。具体的代码如下: ``` String url = "jdbc:mysql://<host>:<port>/<database>"; String user = "<username>"; String password = "<password>"; DataModel model = new ReloadFromJDBCDataModel(url, user, password); ``` 其中,<host>是MySQL服务器的主机名或IP地址,<port>是MySQL服务器的端口号,<database>是要连接的数据库名,<username>和<password>是登录MySQL数据库所需的用户名和密码。 3. 接下来,使用SVD推荐算法对评分数据进行建模和预测。具体的代码如下: ``` RecommenderBuilder builder = new SVDRecommenderBuilder(); Recommender recommender = builder.buildRecommender(model); ``` 其中,RecommenderBuilder是一个接口,用于创建推荐器模型。SVDRecommenderBuilder是Mahout中实现SVD推荐算法的类。buildRecommender()方法用于创建推荐器模型。 4. 最后,使用推荐器模型进行预测。具体的代码如下: ``` int userId = <user_id>; int numRecommendations = <num_recommendations>; List<RecommendedItem> recommendations = recommender.recommend(userId, numRecommendations); ``` 其中,<user_id>是要为其进行推荐的用户ID,<num_recommendations>是要生成的推荐物品数量。recommend()方法用于生成推荐结果,返回一个RecommendedItem列表,每个RecommendedItem对象包含一个物品ID和一个预测评分值。 以上就是使用Mahout 0.9版本中的ReloadFromJDBCDataModel连接MySQL并采用SVD推荐算法的具体步骤。希望能对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值