zoukankan      html  css  js  c++  java
  • 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文件系统中的文件

  • 相关阅读:
    转载 cglib代理和java代理
    解决流不能重复使用
    @RestController的方法中 路径参数带.(点号)配置
    Spring中application*的使用
    转载自用学习 侵权删
    转载学习 多线程中的内存模型和关键字
    转载 幂等的使用
    转载学习 关于线程池
    FastJSON 转换List<T> ,Map<T,T>泛型失败 处理方法
    quartz报错 Couldn't retrieve job because the BLOB couldn't be deserialized: null
  • 原文地址:https://www.cnblogs.com/ljdblog/p/6211194.html
Copyright © 2011-2022 走看看