首页 > 代码库 > Hadoop-0.20.2安装配置

Hadoop-0.20.2安装配置

摘要本文介绍了在VirtualBox下安装3ubuntu虚拟机,并搭建Hadoop环境的基本步骤,最后运行了Hadoop自带example中的wordcount例程。

1 实验环境

VirtualBox版本:4.3.2 r90405

ubuntu虚拟机版本:ubuntu11.04

ubuntu虚拟机jdk版本:jdk-1.6.0_45

ubuntu虚拟机hadoop版本:hadoop-0.20.2

2 总体概述

要在单独的一台计算机上实现Hadoop多节点分布式计算,需要通过虚拟机建立多个主机,本文使用VirtualBox虚拟机搭建多节点平台。完成新建虚拟机、安装ssh、配置密钥实现无密码访问、安装jdk、安装hadoop并配置,并运行Hadoop中自带的wordcount程序来验证环境配置。

3 详细步骤

3.1 虚拟机安装

由于要同时运行多台虚拟机,考虑到系统负载,本次实验选择的是ubuntu的早期版本10.04,下载好系统镜像文件后,打开VirtualBox,新建一个OS,经过简单的配置后一台虚拟机便建好了,然后启动虚拟机,选择镜像文件目录,经过系统选项后,系统便建好了,然后利用相同的方法再建一台,三台虚拟机分别命名为UB01UB02UB03,用户名都设置为vbox,登陆密码也都为vbox,建好后用ifconfig查看三台虚拟机的ip地址,可以看出它们的ip各不相同,且相互之间可以ping通,如下图所示,到这里就完成了虚拟机安装。

能够ping通后,再配置三台机器的别名,这样就不用通过ip互访了,打开/etc/hosts,添加内容:

223.3.77.207 UB01

223.3.73.102 UB02

223.3.85.84 UB03

对于UB01按如上书写,对于UB02如下,UB03则可一并推出(这里的每一个ip地址都应该是ifconfig后看到的,因机而异)

设置完别名后,通过ping虚拟机别名便可ping通,结果如下图:


3.2 ssh安装及配置

仅仅能ping通还不够,为了完成分布式计算系统,需要三台机器相互之间可以无密码访问(或者是master可以无密码访问slave)。首先在三台虚拟机上安装ssh-openserver:

sudo apt-get install ssh rsync

完成后,在个人目录/home/vbox/下新建.ssh文件夹,在.ssh中执行:

ssh-keygen -t rsa

系统会问你一些配置,由于是初次实验,不需要这些内容,点回车继续下去即可。完成后会在.ssh/下生成id_rsa和id_rsa.pub两个文件,三台机器做同样处理。

秘钥生成好以后我们需要把三台虚拟机的密钥相互交换,如在UB01中执行

scp ~/.ssh/id_rsa.pub UB02:/home/vbox/.ssh/id_rsa.pub.UB01

scp ~/.ssh/id_rsa.pub UB03:/home/vbox/.ssh/id_rsa.pub.UB01

上述两句的作用是把本机上的id_rsa.pub文件(UB01上密钥)复制到UB02和UB03上的相同位置,并重命名为id_rsa.pub.UB01。

对UB02和UB03做同样处理,完成后每一个机器的/.ssh/中应该有3个密钥,一个是自己的,另两个是别人的,把自己的密钥连同别人的两个密钥加到授权密钥中(对UB01)

cat id_rsa.pub >> authorized_keys;

cat id_rsa.pub.UB02 >> authorized_keys;

cat id_rsa.pub.UB03 >> authorized_keys;

上述3句分别将3个密钥加到同一个授权密钥authorized_keys中。

对UB02和UB03做同样处理。这样3个机子都分别有了其它两个机子的访问权利。

接下来检验相互之间是否可以通过ssh实现无密码访问,在终端输入(对UB01):

ssh UB02;

访问成功会显示欢迎信息,初次访问需要yes,之后就可以直接访问了,实验截图如下:

3.3 jdk安装及配置

在三台虚拟机中都要安装jdk,只需要在一台机子上安装配置,同时将jdk文件夹复制给其它两台机子,可不用各自安装。

我们选择的jdk文件是jdk-6u45-linux-i586.bin,下载完成后把.bin包移动到个人目录/home/vbox/,执行

chmod u+x jdk-6u45-linux-i586.bin;

sudo -s ./jdk-6u45-linux-i586.bin;

等待安装完成,会在当前路径生成jdk目录,接下来设置环境变量,在/etc/environment中添加JAVA_HOME、CLASSPATH和PATH的值,reboot后在Terminal输入java -version会看到版本信息,证明安装成功,安装结果如下图:



3.4 Hadoop安装及配置

也是在三台机子执行同样的操作,可以在一台机子上操作了,然后复制给其它机子。

将下载到的hadoop-0.20.2.tar.gz移动到个人目录/home/vbox/,执行安装操作:

tar -xzvf hadoop-0.20.2.tar.gz                     //解压文件

会在当前路径生成hadoop文件夹,接着修改文件夹所有者:

chown vbox:vbox hadoop-0.20.2

随后把hadoop的环境变量加入到/etc/environment文件中,添加完后文件如下图:

接下来需要修改hadoop/conf/目录下的配置文件,共有6个文件需要修改,分别是masters、slaves、core-site.xml、mapred-site.xml、hdfs-site.xml、hadoop-env.sh,修改如下图:


文件hadoop-env.sh中添加JAVA_HOME变量值,设置为:JAVA_HOME=/home/vbox/jdk1.6.0_45.以上配置信息对UB01UB02UB03完全一致。

3.5wordcount程序测试

本测试用的文件为file,大小分别为128M,测试时进入/home/vbox/hadoop/目录,格式化文件系统并启动所有服务

hadoop namenode-format;

start-all.sh

开启服务后可以通过jps命令和网页查看hadoop系统情况,如下图:

建立input输入并将文件写入input

hadoop fs -mkdir input;

hadoop fs -put fileinput;              //file是文本文件的路径,上传到HDFS

执行wordcount并察看计数结果

hadoop jarhadoop-0.20.2-examples.jar wordcount input output

实验过程及结果如下图:


Hadoop-0.20.2安装配置