1.Hadoop初步环境搭建(ssh无密码通信)

一、初步环境搭建

1在Windows 7上安装VMware虚拟机(VMware-workstation-full-9.0.2),VMware Workstation下载地址:

https://my.vmware.com/cn/web/vmware/details?downloadGroup=WKST-902-WIN&productId=293&rPId=3526


注意:不要安装到C盘,找一个磁盘剩余空间较大的盘安装。

2在VMvare中装三台Ubuntu机器(我们使用的是ubuntu-14.10-desktop),每台机器分配1G或2G的内存,Ubuntu下载地址:

http://www.ubuntu.org.cn/download/desktop/alternative-downloads

在虚拟机中分别安装这三台机器

分别命名为 master,slave1,slave2

 

3分别在三台Ubuntu机器中设置root用户机器密码,以后每次登录的时候都是用root用户登录,具体设置方式如下:

sudo -s进入 root用户权限模式

wpsEB80.tmp

安装vim

输入命令apt-get install vim

设置root登陆

sudo vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

wpsEB90.tmp

wpsEB91.tmp

在弹出的编辑框里输入:

greeter-show-manual-login=true 保存关闭

wpsEB92.tmp

接着在终端中输入:sudo passwd root

wpsEB93.tmp

三台机器修改后,再次登录系统的时候用root用户登录:

wpsEB94.tmp

4在三台Ubuntu机器上安装Java,在这里我们使用的是jdk1.7.0_67(下载地址http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html )

wpsEB95.tmp

下载tar.gz文件

打开终端,建立新目录“/usr/lib/java”,如下图所示:

wpsEB96.tmp

把下载的JDK文件移到刚刚创建的目录中

wpsEBA7.tmp

解压JDK文件

wpsEBA8.tmp

解压完成的文件目录如下图所示:

wpsEBA9.tmp

修改环境变量

wpsEBAA.tmp

进入配置文件,点i进入INSERT模式,在配置文件的最后加入如下代码,完成后ESC,:wq(保存并退出)

wpsEBAB.tmp

执行source命令使配置文件生效:

wpsEBAC.tmp

验证JAVA是否安装成功

输入命令,java –version

wpsEBAD.tmp

三台Ubuntu机器分别出现上述信息就表明Java安装正确。

5配置三台机器的/etc/hosts和/etc/hostname并安装ssh设置三台机器之间的无密码登录

安装ssh

Hadoop集群之间是通过ssh进行通信的,此时我们需要设置密码为空,从而免去每次通信时输入密码,安装如下

wpsEBAE.tmp

输入y继续,等待安装完成

wpsEBBE.tmp

注意:安装ssh若遇到如下错误

E: Package has no installation candidate

解决方法:

输入

sudo apt-get install update

如果问题依然没有解决,则输入

sudo apt-get install upgrade

接着输入sudo apt-get install

最后输入sudo apt-get install ssh即可

安装ssh完成后启动服务

/etc/init.d/ssh start

wpsEBBF.tmp

查看ssh是否正常启动

wpsEBC0.tmp

设置免密码登陆,生成私钥公钥

ssh–keygen –t rsa –P “”

wpsEBC1.tmp

在/root/ssh中生成两个文件:id_rsa和id_rsa.pub,id_rsa为私钥,id_rsa.pub为公钥

wpsEBD2.tmp

我们将公钥id_rsa.pub追加到authorized_keys中,因为authorized_keys用于保存所有允许当前用户身份登录到ssh客户端用户的公钥内容:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

wpsEBD3.tmp

现在查看是否能够进行ssh免密码登陆

wpsEBD4.tmp

输入yes继续

wpsEBD5.tmp

表明登陆成功,可以使用exit命令退出localhost

wpsEBD6.tmp

再次登陆进入localhost就不需要密码了

wpsEBD7.tmp

安装rsync

wpsEBE8.tmp

三台机器分别安装ssh并且设置完成后,分别修改三台机器的主机名称。

在master上,进入/etc修改hostname文件

wpsEBE9.tmp

将主机名ubuntu修改为master,保存后退出

wpsEBEA.tmp

重启master,查看主机名是否修改成功

重启命令为sudo reboot

wpsEBEB.tmp

查看主机名

wpsEBEC.tmp

在slave1上,进入/etc修改hostname文件

wpsEBED.tmp

将主机名ubuntu修改为slave1,保存后退出

wpsEBEE.tmp

重启slave1,查看主机名是否修改成功

重启命令为sudo reboot

wpsEBEF.tmp

查看主机名

wpsEBF0.tmp

在slave2上,进入/etc修改hostname文件

wpsEBF1.tmp

将主机名ubuntu修改为slave2,保存后退出

wpsEBF2.tmp

重启slave2,查看主机名是否修改成功

重启命令为sudo reboot

wpsEBF3.tmp

查看主机名

wpsEBF4.tmp

设置三台机器的IP对应关系,使得三台机器互相之间能够无密码通信

首先,分别查看三台的IP地址:(ifconfig)

master:如下可知master对应的ip为192.168.252.128

wpsEC04.tmp

slave1: 如下可知slave1对应的ip为192.168.252.129

wpsEC05.tmp

slave2:如下可知slave2对应的ip为192.168.252.130

wpsEC16.tmp

分别修改三台机器的/etc/hosts文件,将上述IP和机器名的对应关系进行配置

以mater上的修改为例子:

vim /etc/hosts

wpsEC17.tmp

wpsEC18.tmp

将三台机器的IP和机器名对应关系添加进去,保存并退出

wpsEC19.tmp

配置完成后,使用ping命令查看三台机器是否正常通信

master ping slave1和slave2

wpsEC1A.tmp

slave1 ping master和slave2

wpsEC2A.tmp

slave2 ping slave1和master

wpsEC2B.tmp

查看通信无误之后,我们开始设置三台机器的无密码通信

在前面的步骤以及完成了各台机器自己的公钥私钥生成,现在需要将公钥私钥进行共享

首先,我们将slave1和slave2上的公钥都copy到master节点上:

wpsEC2C.tmp

wpsEC3D.tmp

现在可以看到master下面汇集了master自己的公钥、slave1的公钥、slave2的公钥

wpsEC3E.tmp

接下来将三个公钥都追加到authorized-keys中:

wpsEC3F.tmp

将matser的公钥信息authorized-keys复制到slave1和slave2的~/.ssh下

复制完成后,在master上通过ssh登陆slave1

wpsEC40.tmp

在master用ssh登陆slave2

wpsEC51.tmp

用slave1登陆master和slave2,用slave2登陆master和slave1也是同理。

由此我们完成了对三台机器的无密码通信。

后半部分见下篇文章《Hadoop集群搭建》

posted on 2015-07-11 18:47  Satchmo丶  阅读(787)  评论(1编辑  收藏  举报