三、CDH4集群部署
1.集群环境
选择5台物理PC机,构建Hadoop集群;
操作系统均为CentOS 6.4;
集群包括5个节点:1个Master,4个Slave节点
注:节点之间可以局域网连接,使用静态IP,相互ping通;也可以不用静态IP,直接使用外网分配的固定的IP;以静态为例:
机器
主机名
192.168.12.10
Master
192.168.12.11
Slave01
192.168.12.12
Slave02
192.168.12.13
Slave03
192.168.12.14
Slave04
2.配置过程
1)修改主机名(分别在每个节点主机上修改)
# hostname Master # vim /etc/sysconfig/network 修改为:
HOSTNAME = Master 其他机器分别做相应的设置,修改为:Slave01、Slave02、Slave03、Slave04
注:设置后重启机器
2)修改hosts文件(所以机器上做相同的配置)
# vim /etc/hosts 在文件中添加配置:
192.168.12.10 Master192.168.12.11 Slave01192.168.12.12 Slave02192.168.12.13 Slave03192.168.12.14 Slave04 注:可以在其他所有机器上进行上述相同的配置,或者用scp命令将Master修改后的文件复制到其他机器上
# scp /etc/hosts root@192.168.12.11:/etc/hosts
3)配置SSH无密码登陆(主要工作在Master一台机器上完成即可)
附:SSH无密码登陆原理简介:
首先,在Master上生成一个密钥对,包括一个公钥和一个私钥,并将公钥复制到所有的Slave上;
当Master通过SSH连接Slaver时,Slave会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master;
Master收到加密后用私钥进行解密,并将解密数回送给Slave,Slave确认解密数无误后允许Master不输入密码就可以进行连接
u配置Master无密码登陆所有Slave(在Master上操作)
具体过程如下:
ØMaster机器上生成密码对
# ssh –keygen –t rsa -P生成无密码密钥对,询问保存路径时直接回车采用默认的路径;
生成的密钥对为:id_rsa和id_rsa.pub ;默认在 /root/.ssh 目录下
ØMaster节点上配置,将id_rsa.pub追加到授权的key中去
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keysØ修改authorized_keys权限
# chmod 600 ~/.ssh/authorized_keys 权限的设置非常重要,因为不安全的设置,会不能使用RSA功能
Ø修改SSH配置文件
# vim /etc/ssh/sshd_config修改前:
#RSAAuthentication yes # 启用RSA 认证
#PubkeyAuthentication yes # 启用公钥私钥配对认证方式
# AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
修改后:
RSAAuthenticationyes # 启用RSA 认证
PubkeyAuthenticationyes # 启用公钥私钥配对认证方式
AuthorizedKeysFile.ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
Ø重启SSH服务
# service sshd restartØ验证是否成功
# ssh MasterØ将公钥复制到所有Slave机器上
# scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器 IP:~/
以Slave01为例:
# scp ~/.ssh/id_rsa.pub root@192.168.12.11:~/l登陆到Slave01机器上
# ssh 192.168.12.11 需要输入root密码,进入Slave01机器,因为现在Master还不能无密码登陆Slave01
l在root目录下建立.ssh文件夹
# mkdir ~/.ssh 这一步并不是必须的,如果已有.ssh目录,则不需要建立
l修改文件夹“.ssh”的用户权限
# chmod 700 ~/.sshl追加到授权文件“authorized_keys”
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys l修改权限
# chmod 600 ~/.ssh/authorized_keysl修改Slave01上的SSH配置文件
# vim /etc/ssh/sshd_config修改前:
#RSAAuthentication yes # 启用RSA 认证
#PubkeyAuthentication yes # 启用公钥私钥配对认证方式
# AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
修改后:
RSAAuthenticationyes # 启用RSA 认证
PubkeyAuthenticationyes # 启用公钥私钥配对认证方式
AuthorizedKeysFile.ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
l重启SSH服务
# service sshd restartl删除掉复制过来的“id_rsa.pub”文件
# rm ~/id_rsa.publ验证Master到Slave01的无密码登陆
从Slave01回到Master机器:
# ssh 192.168.12.10需要输入root密码,进入Master机器,因为现在Slave01还不能无密码登陆Master
在Master下登陆Slave01:
# ssh Slave01 看是否可以成功进行无密码登陆
注:同样的方法,从Master登陆Slave02、Slave03、Slave04进行同样的操作
u配置所有Slave无密码登陆Master(在Slave机器上操作,也可由Master登陆到Slave进行操作)
步骤和Master无密码登陆所有Slave一样,即把所有Slave的公钥追加到Master的“.ssh”文件夹下的“authorized_keys”中
以Slave01为例:(在Slave01上操作)
Ø创建Slave01自己的公钥和私钥,
# ssh –keygen –t rsa -P 生成无密码密钥对,询问保存路径时直接回车采用默认的路径;
生成的密钥对为:id_rsa和id_rsa.pub ;默认在 /root/.ssh 目录下
Ø将id_rsa.pub追加到Slave01自己的authorized_keys中去
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keysØ重启SSH服务
# service sshd restartØ验证是否成功
# ssh Slave01Ø将Slave01的公钥复制到Master机器上
# scp ~/.ssh/id_rsa.pub root@192.168.12.10:~/l登陆到Master机器上
# ssh 192.168.12.10 需要输入root密码,进入Master机器,因为现在Slave01不能无密码登陆Master
l在root目录下建立.ssh文件夹
# mkdir ~/.ssh 这一步并不是必须的,如果已有.ssh目录,则不需要建立
l修改文件夹“.ssh”的用户权限
# chmod 700 ~/.sshl将复制来的公钥追加到Master授权文件“authorized_keys”中
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys l删除掉复制过来的“id_rsa.pub”文件
# rm ~/id_rsa.publ验证Slave01到Master的无密码登陆
从Master回到Slave01机器:
# ssh Slave01 无需输入root密码进入Slave01机器,因为Master已经可以无密码登陆Slave01
在Slave01下登陆Master:
# ssh Master 看是否可以成功进行无密码登陆
注:同样的方法,在Slave02、Slave03、Slave04进行同样的操作