一、初步环境搭建
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的内存,Ubuntu下载地址:
http://www.ubuntu.org.cn/download/desktop/alternative-downloads
在虚拟机中分别安装这三台机器
3分别在三台Ubuntu机器中设置root用户机器密码,以后每次登录的时候都是用root用户登录,具体设置方式如下:
sudo -s进入 root用户权限模式
安装vim
输入命令apt-get install vim
设置root登陆
sudo vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
在弹出的编辑框里输入:
greeter-show-manual-login=true 保存关闭
接着在终端中输入:sudo passwd root
三台机器修改后,再次登录系统的时候用root用户登录:
4在三台Ubuntu机器上安装Java,在这里我们使用的是jdk1.7.0_67(下载地址http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html )
下载tar.gz文件
打开终端,建立新目录“/usr/lib/java”,如下图所示:
把下载的JDK文件移到刚刚创建的目录中
解压JDK文件
解压完成的文件目录如下图所示:
修改环境变量
进入配置文件,点i进入INSERT模式,在配置文件的最后加入如下代码,完成后ESC,:wq(保存并退出)
执行source命令使配置文件生效:
验证JAVA是否安装成功
输入命令,java –version
三台Ubuntu机器分别出现上述信息就表明Java安装正确。
5配置三台机器的/etc/hosts和/etc/hostname并安装ssh设置三台机器之间的无密码登录
安装ssh
Hadoop集群之间是通过ssh进行通信的,此时我们需要设置密码为空,从而免去每次通信时输入密码,安装如下
输入y继续,等待安装完成
注意:安装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
查看ssh是否正常启动
设置免密码登陆,生成私钥公钥
ssh–keygen –t rsa –P “”
在/root/ssh中生成两个文件:id_rsa和id_rsa.pub,id_rsa为私钥,id_rsa.pub为公钥
我们将公钥id_rsa.pub追加到authorized_keys中,因为authorized_keys用于保存所有允许当前用户身份登录到ssh客户端用户的公钥内容:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
现在查看是否能够进行ssh免密码登陆
输入yes继续
表明登陆成功,可以使用exit命令退出localhost
再次登陆进入localhost就不需要密码了
安装rsync
三台机器分别安装ssh并且设置完成后,分别修改三台机器的主机名称。
在master上,进入/etc修改hostname文件
将主机名ubuntu修改为master,保存后退出
重启master,查看主机名是否修改成功
重启命令为sudo reboot
查看主机名
在slave1上,进入/etc修改hostname文件
将主机名ubuntu修改为slave1,保存后退出
重启slave1,查看主机名是否修改成功
重启命令为sudo reboot
查看主机名
在slave2上,进入/etc修改hostname文件
将主机名ubuntu修改为slave2,保存后退出
重启slave2,查看主机名是否修改成功
重启命令为sudo reboot
查看主机名
设置三台机器的IP对应关系,使得三台机器互相之间能够无密码通信
首先,分别查看三台的IP地址:(ifconfig)
master:如下可知master对应的ip为192.168.252.128
slave1: 如下可知slave1对应的ip为192.168.252.129
slave2:如下可知slave2对应的ip为192.168.252.130
分别修改三台机器的/etc/hosts文件,将上述IP和机器名的对应关系进行配置
以mater上的修改为例子:
vim /etc/hosts
将三台机器的IP和机器名对应关系添加进去,保存并退出
配置完成后,使用ping命令查看三台机器是否正常通信
master ping slave1和slave2
slave1 ping master和slave2
slave2 ping slave1和master
查看通信无误之后,我们开始设置三台机器的无密码通信
在前面的步骤以及完成了各台机器自己的公钥私钥生成,现在需要将公钥私钥进行共享
首先,我们将slave1和slave2上的公钥都copy到master节点上:
现在可以看到master下面汇集了master自己的公钥、slave1的公钥、slave2的公钥
接下来将三个公钥都追加到authorized-keys中:
将matser的公钥信息authorized-keys复制到slave1和slave2的~/.ssh下
复制完成后,在master上通过ssh登陆slave1
在master用ssh登陆slave2
用slave1登陆master和slave2,用slave2登陆master和slave1也是同理。
由此我们完成了对三台机器的无密码通信。