`

Mahout详细安装过程

 
阅读更多

转自:http://hi.baidu.com/pakko/blog/item/e3d2228bd72a7a05c9fc7a71.html

 

1、jdk安装

1.1、到官网下载相关的JDK

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

 

1.2、打开“终端”

输入:sh jdk-6u24-linux-i586.bin 

 

1.3、设置JAVA_HOME环境系统变量

输入:

vi /etc/environment  

在文件中添加:

export JAVA_HOME=/root/jdk1.6.0_24 

export JRE_Home=/root/jdk1.6.0_24/jre 

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib  

同样,修改第二个文件。输入:

vi /etc/profile  

在umask 022之前添加以下语句:

export JAVA_HOME=/root/jdk1.6.0_24 

export JRE_Home=/root/jdk1.6.0_24/jre 

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib  

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin  

 

1.4、注销用户,检测JDK版本。

输入:

java -version 

 

2、集群环境介绍

集群包含三个节点:1 个 namenode,2 个 datanode,节点之间局域网连接,可以相互 ping 通。节点 IP 地址分布如下:

Namenode:  master@192.168.1.10

Datanode1:  slave1 @192.168.1.20

Datanode2:  slave2@192.168.1.21

三台节点上均是CentOS系统,Hadoop在/root/hadoop/目录下。

在/etc/hosts上添加主机名和相应的IP地址:

192.168.1.10master

192.168.1.20slave1

192.168.1.21slave2

3、SSH无密码验证配置

 2.1 Hadoop 需要使用SSH 协议,namenode 将使用SSH 协议启动 namenode和datanode 进程,伪分布式模式数据节点和名称节点均是本身,必须配置 SSH localhost无密码验证。

    用root用户登录,在家目录下执行如下命令:ssh-keygen -t rsa 

[root@master ~]# ssh-keygen -t  rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):  & 按回车默认路径 &

Created directory '/root/.ssh'.  &创建/root/.ssh目录&

Enter passphrase (empty for no passphrase):

Enter same passphrase again: 

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

c6:7e:57:59:0a:2d:85:49:23:cc:c4:58:ff:db:5b:38 root@master

通过以上命令将在/root/.ssh/ 目录下生成id_rsa私钥和id_rsa.pub公钥。进入/root/.ssh目录在namenode节点下做如下配置:

[root@master .ssh]# cat id_rsa.pub > authorized_keys

[root@master .ssh]# scp  authorized_keys 192.168.1.20:/root/.ssh/

[root@master .ssh]# scp  authorized_keys 192.168.1.21:/root/.ssh/

配置完毕,可通过ssh 本机IP 测试是否需要密码登录。

 

2.2 和namenode无密码登录所有Datanode原理一样,把Datanode的公钥复制到

Namenode的.ssh目录下。

[root@slave1 .ssh]# scp  authorized_keys1  192.168.1.10:/root /.ssh

[root@ slave2.ssh]# scp  authorized_keys2  192.168.1.10:/root /.ssh

将刚传过来的authorized_keys1、2加入到authorized_keys

[root@ master.ssh]# cat  authorized_keys1 > authorized_keys

[root@ master.ssh]# cat  authorized_keys2 > authorized_keys

这样也能在Datanode上关闭和启动Hadoop服务。

4、 Hadoop配置

下载 hadoop-0.20.2.tar.gz, 进行解压。

tar zxvf  hadoop-0.20.2.tar.gz

修改/etc/profile,加入如下:

# set hadoop path

export HADOOP_HOME=/root/hadoop

export PATH=$HADOOP_HOME/bin:$PATH

 

4.1、进入hadoop/conf, 配置Hadoop配置文件

4.1.1 配置hadoop-env.sh文件

添加 # set java environment

             export JAVA_HOME=/root/jdk1.6.0_24

编辑后保存退出。

 

4.1.2 配置core-site.xml

# vi core-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

   <property>

     <name>fs.default.name</name>

     <value>hdfs://192.168.1.10:9000/</value>

   </property>

   <property>

     <name>hadoop.tmp.dir</name>

     <value>/root/hadoop/hadooptmp</value>

   </property>

</configuration>

 

4.1.3 配置hdfs-site.xml

# vi  hdfs-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

  <property>

     <name>dfs.name.dir</name>

     <value>/root/hadoop/hdfs/name</value>

  </property>

  <property>

     <name>dfs.data.dir</name>

     <value>/root/hadoop/hdfs/data</value>

  </property>

  <property>

     <name>dfs.replication</name>

     <value>3</value>

  </property>

</configuration>

    

4.1.4 配置mapred-site.xml

# vi mapred-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

  <property>

     <name>mapred.job.tracker</name>

     <value>192.168.1.10:9001</value>

  </property>

  <property>

     <name>mapred.local.dir</name>

     <value>/root/hadoop/mapred/local</value>

  </property>

  <property>

     <name>mapred.system.dir</name>

     <value>/tmp/hadoop/mapred/system</value>

  </property>

</configuration> 

 

4.1.5 配置masters

# vi masters

192.168.1.10

4.1.6 配置slaves

#vi slaves

192.168.1.20

192.168.1.21

 

4.2、 Hadoop启动

4.2.1 进入 /root/hadoop/bin目录下,格式化namenode

#./hadoop namenode –format

 

4.2.2 启动hadoop所有进程

在/root/hadoop/bin 目录下,执行start-all.sh命令

启动完成后,可用jps命令查看hadoop进程是否启动完全。正常情况下应该有如下进程:

10910 NameNode

11431 Jps

11176 SecondaryNameNode

11053 DataNode

11254 JobTracker

11378 TaskTracker  

 

我在搭建过程中,在此环节出现的问题最多,经常出现启动进程不完整的情况,要不是datanode无法正常启动,就是namenode或是TaskTracker启动异常。解决的方式如下:

1)在Linux下关闭防火墙:使用service iptables stop命令;

2)再次对namenode进行格式化:在/root/hadoop/bin 目录下执行hadoop namenode -format命令

3)对服务器进行重启

4)查看datanode或是namenode对应的日志文件,日志文件保存在/root/hadoop/logs目录下。

5)再次在/bin目录下用start-all.sh命令启动所有进程,通过以上的几个方法应该能解决进程启动不完全的问题了。

 

4.2.3  查看集群状态

在 bin目录下执行:hadoop dfsadmin  -report

# hadoop dfsadmin –report

 

4.3 在WEB页面下查看Hadoop工作情况

打开IE浏览器输入部署Hadoop服务器的IP:

http://localhost:50070

http://localhost:50030。

 

5、Hadop使用

一个测试例子wordcount

计算输入文本中词语数量的程序。WordCount在Hadoop主目录下的java程序包hadoop-0.20.2-examples.jar 中,执行步骤如下:

在/root/hadoop/bin/目录下进行如下操作:

./hadoop fs -mkdir  input(新建目录名称,可任意命名)

mkdir /root/a/

vi /root/a/a.txt

写入hello world hello

#hadoop fs -copyFromLocal /root/a/ input

在/root/hadoop/bin下执行:

#./hadoop jar hadoop-0.20.2-examples.jar wordcount input output (提交作业,此处需注意input与output是一组任务,下次再执行wordcount程序,还要新建目录intput1与output1不能跟input与output重名)

 

6、Maven安装

6.1下载Maven

解压tar vxzf apache-maven-3.0.2-bin.tar.gz

mv apache-maven-3.0.2 /root/maven

 

6.2  vi ~/.bashrc

添加如下两行

export M3_HOME=/root/maven

export PATH=${M3_HOME}/bin:${PATH}

 

6.3 先logout,之后再login

查看maven版本,看是否安装成功

mvn -version

 

7、安装mahout

安装方法见:

https://cwiki.apache.org/confluence/display/MAHOUT/BuildingMahout

 

8、hadoop集群来执行聚类算法

8.1数据准备

cd /root/hadoop

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

 

8.2 ./hadoop fs -mkdir testdata

./hadoop fs -put synthetic_control.data testdata

./hadoop fs -lsr testdata

 

bin/hadoop jar /root/mahout/mahout-examples-0.4-job.jar org.apache.mahout.clustering.syntheticcontrol.kmeans.Job

 

8.3查看一下结果吧

bin/mahout vectordump --seqFile /user/root/output/data/part-r-00000

这个直接把结果显示在控制台上。

 

9、hadoop集群来执行推荐算法

分布式

bin/hadoop jar /root/trunk/mahout-distribution-0.4/mahout-core-0.4-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -Dmapred.map.tasks=3 -Dmapred.reduce.tasks=3 -Dmapred.input.dir=testdata/100wan.txt -Dmapred.output.dir=output2

 

伪分布式

bin/hadoop jar /root/trunk/mahout-distribution-0.4/mahout-core-0.4-job.jar org.apache.mahout.cf.taste.hadoop.pseudo.RecommenderJob --recommenderClassName org.apache.mahout.cf.taste.impl.recommender.slopeone.SlopeOneRecommender -Dmapred.input.dir=testdata/10wan.dat -Dmapred.output.dir=output_w10wan

10、其他

离开安全模式:hadoop dfsadmin -safemode leave

分享到:
评论

相关推荐

    Learning Apache Mahout

    Mahout的目的是为了简化大规模数据集上的复杂算法的实现过程,让数据科学家和开发者能够更容易地构建智能应用程序。 在《Learning Apache Mahout》这本书中,作者Chandramani Tiwary深入介绍了Mahout的安装和使用,...

    mahout安装图文版

    本节将详细介绍 Maven 的安装步骤,以确保 Mahout 的成功构建。 ##### 3.1 Maven 简介 - **定义**:Maven 是一款基于项目对象模型(POM)的软件项目管理工具。它可以基于一小段描述信息来管理项目的构建、报告和...

    如何成功运行Apache Mahout的Taste Webapp-Mahout推荐教程-Maven3.0.5-JDK1.6-Mahout0.5

    首先,从Apache官方网站或SVN代码库下载Mahout的0.5版本源码包,然后使用Maven命令编译并安装相关模块到本地仓库中。需要注意的是,在编译过程中可能会遇到内存溢出的问题,此时可以适当增加JVM堆内存大小。 4. ...

    MAHOUT实战(中文版)

    4. **安装与配置**:详述如何在本地或分布式环境中设置Mahout,包括依赖库的安装、Hadoop集群的配置以及与其他大数据工具(如Hive和Pig)的集成。 5. **数据预处理**:在应用机器学习算法之前,数据清洗和转换是...

    mahout环境搭建

    最后,如果你打算在 Eclipse 中开发基于 Mahout 的应用程序,还需要安装 Eclipse 插件(如 m2eclipse)来支持 Maven 项目,并配置 Hadoop 和 Mahout 的相关路径。这将使得在 IDE 中编写、编译和调试 Mahout 代码变得...

    hadoop2.7.3+mahout0.9问题集

    2. **环境配置**:在安装和配置过程中,确保所有依赖项正确设置。这包括JDK、Hadoop、Mahout的路径设置,以及Hadoop集群的配置文件(如core-site.xml、hdfs-site.xml和mapred-site.xml)中的相关参数。 3. **编译与...

    Mahout机器学习领域分布式计算框架

    本文将详细介绍Mahout的相关知识,并通过其背景介绍、核心组件Hadoop(包括HDFS和MapReduce)、以及如何搭建和操作Hadoop环境等方面进行深入探讨。 #### 二、Hadoop简介 ##### 2.1 Hadoop概述 Hadoop是一个开源...

    MAHOUT实战--中文高清版.pdf下载

    这将包括Mahout的安装、配置以及编写脚本或程序调用其API来实现数据挖掘任务。 5. 个性化服务:在个性化需求越来越被重视的今天,Mahout通过其算法能够帮助企业分析用户行为、提供个性化的产品推荐、内容推荐等,...

    Mahout in action(适合mahout初学者,英文pdf,易懂)

    Mahout本身不提供用户界面、预装的服务器或安装程序,而是一个工具框架,供开发人员在应用程序中集成和使用。 本书《Mahout in Action》是针对Mahout初学者的实用指南,内容涵盖了Mahout的安装和设置、推荐引擎、...

    Mahout in Action完整版本.pdf

    此外,本书还提供了Mahout的安装和配置指导,帮助读者快速上手Mahout。 从Mahout的使用和实施来看,它的设计目标是为了解决大数据问题,这使得它成为处理大规模数据集时的理想选择。无论是在推荐系统、聚类分析还是...

    Mahout推荐算法实战

    1. **Mahout基础**:首先,书会介绍Mahout的基本概念、架构和安装过程,包括如何配置Hadoop环境以及如何导入和准备数据。 2. **数据预处理**:数据是推荐系统的核心,书中会讲解如何清洗、转换和标准化原始数据,使...

    java基于Mahout实现协同过滤推荐算法的电影推荐系统源码+详细说明.zip

    源码中的README文件应该会提供详细的步骤来编译和运行程序,包括如何设置环境变量、导入项目到IDE以及运行主类等。 此外,理解推荐系统的工作原理和评估方法也非常重要。推荐系统的评估通常通过离线评价(如折戟...

    基于mahout的数据挖掘技术课程 共35页.rar

    3. **安装与配置**:学员将学习如何在本地或集群环境中安装和配置Mahout,包括必要的依赖库和开发环境设置。 4. **Mahout的核心算法**:课程会深入讨论Mahout提供的各种算法,如随机森林(Random Forest)、朴素...

    Mahout算法解析与案例实战_PDF电子书下载 带书签目录 完整版.pdf

    接着,将详细讲解Mahout框架的基础架构和工作原理,包括如何安装和配置Mahout,以及如何与Hadoop生态系统进行集成。 关于算法解析,书中有以下几个重点内容: 1. **协同过滤(Collaborative Filtering)**:这是...

    Recommendation-with-mahout:与Maven + hadoop和mahout一起推荐

    Mahout的核心目标是让数据科学家和开发人员能够轻松地构建智能应用程序,通过大规模分布式计算来处理海量数据。在这个项目中,Mahout将用于构建推荐引擎,为用户提供个性化的推荐内容。 **Maven** Maven是Java项目...

Global site tag (gtag.js) - Google Analytics