——基于三台机器
一、前提
1、 首先要有三台已联网机器,假设为A,B1,B2。其中A:192.168.81.91;B1:192.168.81.92;B2:192.168.81.93。机器装有Ubuntu10.04服务器版64位操作系统。
2、 对三台机器做相同的处理。为Hadoop集群的使用新增一个专门的用户,假设用户名和密码均为hadoop。然后使用hadoop用户账户登录到系统。具体操作步骤为:
$sudo useradd hadoop $sudo passwd hadoop $sudo groupadd hadoop $sudo usermod -g hadoop hadoop $sudo mkdir /home/hadoop $sudo chown hadoop: hadoop /home/hadoop |
3、 修改hostname和hosts文件。首先修改各机器上的/etc/hostname文件。我们假设A机器作为master,B1和B2作为slaver。则修改A机器的hostname文件内容为master。修改B1机器上的hostname文件内容为slaver1,修改B2机器上的hostname文件内容为slaver2。操作步骤为:
$sudo vim /etc/hostname %进入了vim编辑器编辑hostname文件,假设为master %完成后退出vim编辑器 $sudo hostname master $hostname %查看是否成功 |
三台机器的hosts文件都相同,类似于以下内容,进入编辑方法与hostname文件编辑一致。
192 . 168 . 81 . 191 master 192 . 168 . 81 . 192 slaver1 192 . 168 . 81 . 193 slaver2 |
4、 在各机器上安装JDK1.6或者更高版本。在Ubuntu10.04服务器上自带openJDK,但这对于安装Hadoop不适用,必须安装sun-java JDK。安装方式如下:
$sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse" $sudo apt-get update $sudo apt-get install sun-java6-jdk %然后弹出java安装界面,以此选择yes和ok可以完成sun-java6-jdk的安装。 %但是此时系统使用的 JDK 还是默认的open JDK ,需要我们修改为已经安装的 JDK 。 $sudo update-alternatives --config java |
输入代表所安装sun-java6-JDK的数字,回车。OK,设置完成。可以用java –version命令验证。如果出现以下结果,则表明sun JDK已经安装完成。
5、 配置master用SSH免密码登录到所有slaver。使用ssh –version检查系统是否安装ssh。如果显示如下结果吗,则表明系统已安装SSH。
如果没有安装,请使用下面命令安装:
$sudo apt-get install ssh |
系统安装ssh完成后就开始配置无密码登录了。需要对每台slaver都做相同的处理。以下操作是在master机器上对slaver1进行操作的步骤,slaver2类似。
$ls –al /home/hadoop %看是否存在.ssh这个隐藏文件夹,一般情况下安装了ssh后会自动创建,如果没有可以使用命令mkdir /home/hadoop/.ssh创建。 $ssh -keygen -t -dsa - P ‘’ -f ~/.ssh/id_dsa %以上命令是生成密钥,-t表示指定密钥类型(注意要小写),此处生成的是dsa密钥认证;- P 用于提供密语(注意要大写),此处为空;-f指定生成的密钥文件,此处指定为 /home/hadoop/.ssh/id_dsa。 $cd ~/.ssh $scp id_dsa.pub hadoop @slaver1 :/home/hadoop/.ssh/ id_dsa.pub %可能拷贝之前需要输入远程机器的密码,提示输入密码的时候输入slaver1的登录密码就行。 OK ,此时已经把master公钥拷贝到远程机器slaver1上了。下面到slaver1上进行操作: $cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys %这句命令的意思是把公钥加到用于认证的公钥文件中。至此无密码登录slaver1已经设置完成。可以使用下面命令检验(在master下使用命令): $ssh slaver1 |
二、安装hadoop(以下以hadoop-0.20.2为例)
%以下所有操作可以只在master上进行配置,配置完成后将hadoop- 0 . 20 . 2 目录整体复制到所有slaver机器,复制目录的命令为: $scp -r ~/hadoop- 0 . 20 . 2 hadoop @slaver1 :~/ |
1、 首先下载hadoop,使用如下命令:
$cd ~ $wget http://mirror.bjtu.edu.cn/apache/hadoop/common/hadoop- 0 . 20 . 2 / hadoop- 0 . 20 . 2 .tar.gz |
2、 解压下载的hadoop压缩包,使用ls命令可以查看是否已下载并在当前目录,命令如下:
$ls –al $tar –zxvf hadoop- 0 . 20 . 2 .tar.gz |
3、 解压后可以在当前目录得到一个hadoop-0.20.2子目录。配置需要修改的文件全部位于该目录的子目录conf下面。使用cd hadoop-0.20.2/conf进入conf目录。修改文件使用vim编辑器。
(1) 修改hadoop-env.sh
添加内容:
(2) 修改core-site.xml
(3) 修改hdfs-site.xml
(4) 修改mapred-site.xml
(5) 修改masters
master |
(6) 修改slaves
slaver1 slaver2 |
4、 为了方便hadoop使用,我们将hadoop的安装路径加到系统path中。使用如下命令:
$sudo vim ~/.bashrc |
在文本编辑器下对.bashrc进行如下修改: