hadoop数据仓库搭建--配置ssh免密码

Haoop集群中的各个节点主机需要互相通信,因此datanode与namenode之间需要免密码ssh

本次实践分为四台虚拟机:

192.168.227.128 master
192.168.227.129 slave1
192.168.227.130 slave2
192.168.227.131 slave3

步骤如下:

  • 分别在四台机器上生成密匙对  

#进入grid用户的主目录

cd ~

#生成密匙对

ssh-keygen -t rsa

然后一路按回车键

  • 在master上执行

    #进入.ssh

    cd ~/.ssh/

    #把本机的公匙追加到自身的~/.ssh/authorized_keys文件里

    ssh-copy-id  192.168.227.128

    #将authorized_keys文件复制到第二台主机

    scp /home/grid/.ssh/authorized_keys 192.168.227.129:/home/grid/.ssh/

  •  在其他三个节点机器上分别重复以上步骤,但ip地址要随之更改,分别改为本机ip跟要复制到的下一台机器
  •    在第四个机器时,将本机公匙添加到文件后,将该文件复制到其他各个机器的文件夹里,以便实现互相免密通信

    scp /home/grid/.ssh/authorized_keys 192.168.227.128:/home/grid/.ssh/

    scp /home/grid/.ssh/authorized_keys 192.168.227.129:/home/grid/.ssh/

    scp /home/grid/.ssh/authorized_keys 192.168.227.130:/home/grid/.ssh/

   在执行以下ssh-copy-id  192.168.227.128步骤时,遇到以下问题:

/usr/bin/ssh-copy-id: ERROR: ssh: connect to host 192.168.227.128 port 22: Connection refused

解决方法如下:

运行 ps -e | grep ssh,查看是否有sshd进程

如果没有,说明server没启动,通过 /etc/init.d/ssh -start 启动server进程,如果提示ssh不存在 那么就是没安装server

通过 sudo apt-get install openssh-server命令安装

由于我本次实践是全新的系统,所以只安装了openssh-client,并没有安装openssh-server

而在安装openssh-server,因openssh-client版本较新,而openssh-server依赖的openssh-client版本较旧,所以需要将原本的openssh-client卸载后与openssh-server一起重装,卸载命令为:

sudo apt-get  autoremove  openssh-client

接着安装:

sudo apt-get install openssh-client openssh-server

安装完毕后启动sshd服务:

sudo /etc/init.d/ssh start

问题成功解决

(PS:其他节点机器也要如上安装ssh,否则会connection confused

 

猜你喜欢

转载自www.cnblogs.com/hipth/p/9018743.html