hadoop下安装mahout

安装hadoop

完成

安装mahout

首先下载mahout压缩文件apache-mahout-distribution-0.12.2.tar.gz

放到/home/hadoop/software-ljd/下

解压该文件到/home/Hadoop/mahout下:

tar –zxvf apache-mahout-distribution-0.12.2.tar.gz –C /home/Hadoop/mahout/

完成后需要配置环境变量:/etc/profile文件需要新增(maven:非必须,java:必须,hadoop:必须, mahout:必须)如下的配置

###配置maven home

export MAVEN_HOME=/usr/share/maven

export PATH=$PATH:$MAVEN_HOME/bin

### java配置

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_101

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

###mahout配置

export MAHOUT_HOME=/home/hadoop/mahout/apache-mahout-distribution-0.12.2

export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf

export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATH

 

####配置mahout所需要的hadoop环境

export HADOOP_HOME=/home/hadoop/hadoop-2.7.1

export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

export HADOOP_HOME_WARN_SUPPRESS=not_null

需要在root下配置,完成后保存,然后 source /etc/profile 立即生效

检测mahout是否配置成功

到mahout-home下执行bin/mahout 查看

 

这里需要说明下,当你看到下面的代码时,以为是错的,其实不是,原因:

      MAHOUT_LOCAL:设置是否本地运行,如果设置这个参数就不会运行hadoop了,一旦设置这个参数,那HADOOP_CONF_DIR 和HADOOP_HOME 这两个参数的

      设置就自动失效了。

MAHOUT_LOCAL is not set; adding HADOOP_CONF_DIR to classpath.

hadoop binary is not in PATH,HADOOP_HOME/bin,HADOOP_PREFIX/bin, running locally

在hadoop下使用mahout

先启动hadoop

首先下载测试数据

地址:http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data

在hadoop下创建testdata目录

bin/hadoop fs -mkdir /testdata(错误,需要创建的为/user/hadoop/testdata)

bin/hadoop fs -mkdir /user/hadoop

bin/hadoop fs -mkdir /user/hadoop/testdata(正确)

查看是否已经创建

bin/hadoop fs –ls /

然后把测试数据放到hadoop的testdata中

bin/hadoop fs -put /home/hadoop/software-ljd/data  /user/hadoop/testdata

运行mahout上的kmeans算法:

bin/hadoop jar /home/hadoop/mahout/apache-mahout-distribution-0.12.2/mahout-examples-0.12.2-job.jar org.apache.mahout.clustering.syntheticcontrol.kmeans.Job

最终运行结果

 

最终生成的文件在hdfs的/user/Hadoop/output/data/part-m-00000中

使用mahout vectordump –i /user/Hadoop/output/data/part-m-00000 –o /home/Hadoop/software-ljd/test.txt

将该文件转换成正常可读文件并存储到本机的文件系统中(输出文件在非hadoop文件系统,但是输入文件需要时hadoop文件系统中的文件

原文地址:https://www.cnblogs.com/ljdblog/p/6211194.html