1. 3台机器设置ip以及hostname
# Deepin 2014
# /etc/hosts
# hadoop begin
192.168.0.107 master.hadoop192.168.0.101 salve1.hadoop
192.168.0.102 salve2.hadoop
# hadoop end
2. 配置ssh免登陆
测试目标:实现salve1免登陆master
步骤:
2.1、salve1上生成密钥
ssh-keygen -t rsa -b 1024
记得按提示输入密码(这样更安全...)
2.2、将公钥发给master
scp ~/.ssh/id_rsa.pub zhuqi259@master.hadoop:~
2.3、master将此公钥加入authorized_keys
(先登陆到master机器中)
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
(保证authorized_keys
权限,否则 [sudo] chmod 600 ~/.ssh/authorized_keys)
2.4、确保master服务器sshd服务配置文件( /etc/ssh/sshd_config)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
2.5、重启master sshd服务
sudo /etc/init.d/ssh restart
2.6、此时salve1使用ssh登陆master只需要输入密钥的密码即可(不是用户口令验证登陆)
2.7、为避免每次均输入密钥密码(虽然是个好习惯),(引用jianingy)
cd ~
touch ssh-agent-pl
#!/usr/bin/env perl
# author: jianingy
# 2007/06/24
use strict;
my $exist;
my @dirs = grep {-r $_} glob "/tmp/ssh-*";
foreach (@dirs) {
my @socks = glob("{$_}/agent.*");
next unless (@socks);
foreach (@socks) {
$exist = $_;
# check agent
unless (system "SSH_AUTH_SOCK=$_ ssh-add -l >/dev/null 2>&1") {
print "export SSH_AUTH_SOCK=$_\n";
exit 0;
}
}
}
if ($exist) {
system "SSH_AUTH_SOCK=$exist ssh-add";
print "export SSH_AUTH_SOCK=$exist\n";
} else {
system "ssh-agent";
exec $0;
}
然后放到/usr/bin中
sudo chmod a+x ssh-agent-pl
sudo mv ssh-ahent-pl /usr/bin
然后在.bashrc最后添加
eval `ssh-agent-pl`
2.8、salve1免登陆master结束