Hadoop及Mahout的安装

时间:2022-06-17 00:04:33

本文描述了Hadoop及Mahout的安装。环境如下:

主机:win7 64位,4G内存(host为笔记本,通过无线路由上网)

虚拟机:两台,virtualbox,Linux版本为centos(机器名为bk01,bk02)

 

第一步:在虚拟机上安装centos

1、按照常规安装,由于实验环境对性能要求不高,每个虚拟机配置512M内存。centos在512M内存下默认不安装图形界面。

2、安装后的配置(两个虚拟机同样配置):

a)virtualbox 网卡设置为桥接,选择无线网卡

Hadoop及Mahout的安装
b)修改网络配置

vi /etc/sysconfig/network-scripts/ifcfg-eth0

按下图描述修改文件(该图非原创,当时匆忙没记下网址,在此谢谢原作者)

 

 

c)修改域名服务器

vi /etc/resolv.conf

nameserver 8.8.8.8 #google域名服务器 杭州首选DNS服务器地址,202.101.172.35

nameserver 8.8.4.4 #google域名服务器 也可以设施为当地ISP提供的DNS地址

 Hadoop及Mahout的安装

d)修改配置

useradd grid #添加用户 grid

passward grid #为用户grid设定密码

service iptables stop #关闭防火墙

chkconfig iptables off #关闭防火墙

service sshd start #启动ssh服务

 

e)关闭SELINUX

修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled

 

以上完成后,重启机器即可。

 

第二步:在虚拟机上安装jdk(两个虚拟机同样处理)

1、查看系统是64位/32位,对应的jdk不一样

getconf LONG_BIT 或者 getconf WORD_BIT

2、使用grid登录

[grid@localhost ~]$ su

Password:

[root@localhost grid]# wget --no-check-certificate http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-linux-i586.tar.gz?AuthParam=1390953709_424024baadd0a1274f4f0c42cf37cd3b

#注意:直接在oracle上得到的地址不行,要通过浏览器下载后,看到后面有AuthParam参数的下载地址才可以,这个地址最新生成的才可以,如果之前保存的地址是不行的。

 

tar -zxvf jdk-7u51-linux-i586.tar.gz #下载的文件解压缩

mv ./jdk1.7.0_51 /usr #移动文件夹到 /usr

 

第三步:配置ssh免密码

1、安装ssh客户端

[root@bk01 grid]# yum -y install openssh-clients

2、生成ssh文件(在home文件夹下生成 .ssh目录)

[grid@bk01 ~]$ ssh-keygen -t rsa

以上1-2在所有的虚拟机上执行

3、在其中一个机子上生成authorized_keys文件,并把所有机子上的id_rsa.pub中的内容复制到该文件中(含本机的id_rsa.pub)

4、把公钥文件authorized_keys复制到其他机器上

[grid@bk01 .ssh]$ scp ./authorized_keys grid@192.168.1.151:/home/grid/.ssh/authorized_keys

在bk02上查看拷入的文件,权限必须如下所示,否则要修改: chmod 644

-rw-r--r-- 1 grid grid 391 Jan 29 10:31 authorized_keys

注意,密码对本机也要设置

即把所有机器上id_rsa.pub公钥都考入到authorized_keys中,再分发到各个节点。

再从bk01上登录到bk02就不需要密码了

[grid@bk01 ~]$ ssh 192.168.1.151

 

第四步:安装Hadoop(只需在一台机子上安装配置,完成后整个hadoop文件夹分发到其他机子上)

1、下载hadoop

[grid@bk01 ~]$ wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1-bin.tar.gz

[grid@bk01 ~]$ tar -xzvf hadoop-1.2.1-bin.tar.gz

2、配置

----修改java_home---------------

[grid@bk01 ~]$ cd hadoop-1.2.1/conf

[grid@bk01 conf]$ vi hadoop-env.sh

export JAVA_HOME=/usr/jdk1.7.0_51

 

--------------------------------

[grid@bk01 conf]$ vi core-site.xml

修改如下

<configuration>

<property>

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

<value>hdfs://bk01:9000</value>

</property>

<property>

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

<value>/home/grid/hadoop-1.2.1/tmp</value> #指定临时目录

</property>

</configuration>

 

--------------------------------

[grid@bk01 conf]$ vi hdfs-site.xml

修改如下

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

 

--------------------------------

[grid@bk01 conf]$ vi mapred-site.xml

修改如下

<configuration>

<property>

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

<value>bk01:9001</value>

</property

</configuration>

 

--------------------------------

[grid@bk01 conf]$ vi masters

指定master的主机名,修改如下

bk01

 

[grid@bk01 conf]$ vi slaves

指定slave的主机名,修改如下

bk02

 

-------------------------------

修改host文件

[grid@bk01 conf]$ su

Password:

[root@bk01 conf]# vi /etc/hosts

增加两条记录

192.168.1.150 bk01

192.168.1.151 bk02

3、配置好的Hadoop目录分发到其他机器

[grid@bk01 ~]$ scp -r ./hadoop-1.2.1 grid@192.168.1.151:/home/grid

4、其他节点要配置同样的hosts文件

[root@bk01 conf]# vi /etc/hosts

增加两条记录

192.168.1.150 bk01

192.168.1.151 bk02

5、格式化name节点(bk01)

[grid@bk01 ~]$ cd hadoop-1.2.1

[grid@bk01 hadoop-1.2.1]$ bin/hadoop namenode -format

6、启动Hadoop

$HADOOP_HOME/bin/start-all.sh

 

--查看是否启动-----

[grid@bk01 .ssh]$ /usr/jdk1.7.0_51/bin/jps 查看启动的进程

 

name节点bk01 应有如下四个jave进程

1358 NameNode

1693 Jps

1585 JobTracker

1515 SecondaryNameNode

 

数据节点bk02 应有如下三个java进程

10209 TaskTracker

10298 Jps

10143 DataNode


7、Hadoop安装总结

1、配置hosts文件

2、建立hadoop运行账号 linux账号

3、配置ssh免密码连接

4、现在并解压hadoop安装包

5、配置namenode,修改site文件

core-site.xml

hdfs-site.xml

mapred-site.xml

6、修改hadoop-env.sh 修改java home

7、配置master和slaves文件

8、向节点复制hadoop (每个节点的hadoop目录中的内容是一样的)

9、格式化namenode

10、启动hadoop

11、用jps检验各后台是否成功启动

 

第五步、安装Mahout(Mahout装到任一台机器上,可以是master,也可以是slave)

1、下载 解压

[grid@bk01 hadoop-1.2.1]$ wget http://mirrors.cnnic.cn/apache/mahout/0.9/mahout-distribution-0.9.tar.gz

[grid@bk01 hadoop-1.2.1]$ tar xzf ./mahout-distribution-0.9.tar.gz

 

2、配置环境变量

export HADOOP_HOME=/home/grid/hadoop-1.2.1

export HADOOP_CONF_DIR=/home/grid/hadoop-1.2.1/conf

export MAHOUT_HOME=/home/grid/hadoop-1.2.1/mahout-distribution-0.9

export MAHOUT_CONF_DIR=/home/grid/hadoop-1.2.1/mahout-distribution-0.9/conf

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

export JAVA_HOME=/usr/jdk1.7.0_51/

 

3、下载测试数据

[grid@bk01 ~]$ wget http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data

 

将测试数据上传上HDFS

[grid@bk01 ~]$ hadoop-1.2.1/bin/hadoop fs -mkdir ./testdata #创建目录

[grid@bk01 ~]$ hadoop-1.2.1/bin/hadoop fs -put ./synthetic_control.data ./testdata #上传测试数据

[grid@bk01 ~]$ hadoop-1.2.1/bin/hadoop fs -ls ./testdata #查看上传的文件

[grid@bk01 ~]$ mahout org.apache.mahout.clustering.syntheticcontrol.kmeans.Job #执行测试

 

[grid@bk01 ~]$ hadoop-1.2.1/bin/hadoop fs -ls ./output #查看输出文件