安装es-hadoop查了很多资料和书籍,自己搭建好了之后写了一下自己安装的流程,如有不足,欢迎大家批评指正,hadoop是2.6.0版本,elasticsearch是2.2.0版本。
一、hadoop集群配置
1、安装前准备
1.1安装vmwareworkstation软件
1.2在虚拟机上安装linux操作系统
由于是分布式,最少得有三个节点,故准备三个虚拟机节点。我在虚拟机上安装的linux系统是ubuntu12.04(较之ubuntu14.04要稳定一些),安装好一个虚拟机之后,将整个安装文件夹进行复制粘贴形成第二和第三个虚拟机节点。
分别将linux系统的主机名进行重命名以却分三个不同的虚拟机节点,重命名的方式是,在terminal终端(Ctrl+Alt+T打开)输入sudo gedit /etc/hostname,我将三个节点分别命名为master、slave1、slave2。
2、新建用户
在每个节点终端输入如下指令,注意密码要一致,其中useradd是指添加一个用户,而adduser是指生成一个同名用户组且将该用户添加到同名用户组中,最后一行指令赋予该用户及用户组权限
sudo useradd –m hadoop –s /bin/bash
sudo passwd hadoop
sudo adduser hadoop sudo
3、配置hosts文件
配置hosts文件是为了确定每一个节点的ip地址,以便于master节点能够快速查询并访问到各个节点。
3.1查看ip
在终端输入ifconfig查看当前节点的ip地址,如下所示ip为inet addr后面所显示
3.2配置hosts
使用命令行sudo gedit /etc/hosts打开配置文件进行如下配置:
配置中master,slave1和slave2的ip为自己节点查询得到的ip
3.3注意事项
3.3.1网络连接使用桥接
3.3.2设置静态ip
每次虚拟机关闭之后再开启对应的ip可能发生变化,而如果hadoop配置完成之后,再次使用hadoop集群的时候若ip变化,则会导致hadoop不可用,原因是ssh生成的密码不再可用,故建议在开始时就设定静态ip。设置方法如下:
1)修改ip
3)若2)中的所述方法重启后可能失效,使用如下长久有效(有的是head,有的是bash)
4)
sudo ifconfig eth0 down
sudo ifconfig eth0 up
5)重启虚拟机生效
6)ping百度成功联网
4、配置ssh免密码连接
SSH主要通过RSA算法来产生公钥与私钥,在数据传输过程中对数据进行加密来保障数据的安全性和可靠性,公钥部分是公共部分,网络上任一结点均可以访问,私钥主要用于对数据进行加密,以防他人盗取数据。总而言之,这是一种非对称算法,想要破解还是非常有难度的。Hadoop集群的各个结点之间需要进行数据的访问,被访问的结点对于访问用户结点的可靠性必须进行验证,hadoop采用的是ssh的方法通过密钥验证及数据加解密的方式进行远程安全登录操作,当然,如果hadoop对每个结点的访问均需要进行验证,其效率将会大大降低,所以才需要配置SSH免密码的方法直接远程连入被访问结点,这样将大大提高访问效率。
4.1每个节点分别产生公私密钥
1)在终端输入ssh-keygen –t dsa –P ‘’ –f ~/.ssh/id_dsa产生公私密钥
2)将公钥文件复制成authorized_keys文件:
cd .ssh/
catid_dsa.pub >> authorized_keys