zoukankan      html  css  js  c++  java
  • Hadoop完全分布式环境搭建(二)——基于Ubuntu16.04设置免密登录

    在Windows里,使用虚拟机软件Vmware WorkStation搭建三台机器,操作系统Ubuntu16.04,下面是IP和机器名称。

     

     【实验目标】:在这三台机器之间实现免密登录

                             1、从主节点可以免密登陆到主节点

                              2、从主节点可以免密登陆到其它两个从节点

                              3、从两台从节点可以免密登陆主节点,两台从节点可以免密互相登陆。

                            【 注意】:1、2这两点是建立大数据Hadoop完全分布式环境需要的。

     【搭建准备】

          1、三台机器上已建立一个共同的账号:hadoop,口令一致

          2、hadoop账号在/home下建立了hadoop文件夹

               说明:简单的指令:useradd haddop 不会在/home下建立文件夹,需要加参数。

                        采用这种方式:useradd -m username

         3、为hadoop账号授权

             sudo vim /etc/sudoers

             修改文件如下,在root ALL=(ALL) ALL下面增加hadoop ALL=(ALL)  ALL
             # User privilege specification
             root ALL=(ALL) ALL
             hadoop ALL=(ALL) ALL

         4、检查是否已有ssh,没有,则安装,为每台机器安装openssh-server xx

             sudo apt-get install openssh-server

     【设置步骤】    

    1、在主节点master上设置

              1)、$cd ~/.ssh

                   

                   使用ll命令查看,当前~/.ssh文件夹下是空的

                2)、生成一对密钥,本机的密钥,放在.ssh文件夹下

                     $ ssh-keygen -t rsa

                      生成过程中,一路回车即可。

                      

                3)使用ll命令查看,可看到生成了两个文件id_rsa和id_rsa.pub

                      

                4)、让主节点能够免密登录到主节点,把密钥传到授权Keys里

                      $ cat ./id_rsa.pub >> ./authorized_keys

                       

                      使用ll查看,在.ssh文件夹下,新生成了authorized_keys

                 5)、使用ssh 登录主节点,$ssh master ,会询问yes/no,输入yes,如下图,使用logout退出ssh登录到本机

                     

                 6)、再次登录,则不再提示是否yes/no,直接免密登录到本机

                     

                 7)、在使用ssh登录主节点以后,在.ssh文件夹里新增了一个文件:known_hosts

                  

                 8)、把主节点master上生成的公钥id_rsa.pub传到其它两台机器,以实现免密登录其它两台机器

                         $ scp ~/.ssh/id_rsa.pub hadoop@slave1:/home/hadoop/

                         其中,hadoop@slave1,@前面的hadoop是账号,@后面的slave1是目标机器的机器名称,也可以写成IP地址

                                   /home/hadoop/是传到目标机器上的存储路径

                         

                         在传的过程中,会询问yes/no,输入yes,会询问目标机器的登录口令,输入指令里@前所用账号的口令

                        注意:这三台机器的文件路径都是:/home/hadoop/.ssh

                                   home后面的hadoop是作为账号hadoop生成的相应文件夹

                                   从其它机器传过来的密钥,放在.ssh的上一级目录,即:/home/hadoop下,在.ssh里存放的是本机的密钥

                        更改指令$ scp ~/.ssh/id_rsa.pub hadoop@slave2:/home/hadoop/ 传到另一台机器上

     2、分别在另外两台机器上,以hadoop账号登录,把传过来的公钥钥传到授权Keys里

                        先切换目录:$cd ~

                         使用ll查看,发现已经有了从主节点传过来的id_rsa.pub

                         使用指令把传过来的公钥传入授权Keys里:$cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

                       

                       再另外一台机器上也进行此项操作

     3、从主节点使用ssh测试是否能免密登录到其它两台机器

                        输入指令:$ssh slave1

                         由下图可以看出,已经可以免密登录,输入logout退出

                         

                        同样,从主节点测试免密登录另一台从节点。

    4、清理两台从节点上由主节点传过来的公钥

                           cd ~

                           rm -f id_rsa.pub

                          

    5、如果想让两台从节点也能分别访问另外一台从节点和主节点,则参照上面的步骤,把从节点生成的公钥传到另一台从节点上和主节点上,传到授权Key里

    【注意事项】

     1、生成密钥和把密钥传到授权keys里,都需要使用同一个账号,准备用来运行hadoop的那个账号,如果中间穿插使用其它账号,则无效。

     2、生成本机密钥需进入hadoop账号下的.ssh文件夹下,在此文件夹下生成。

     3、把id_rsa.pub往其它机器拷贝的时候,拷贝到目标机器/home/hadoop下,也就是在.ssh的上级目录接收其它机器传过来的密钥

     4、在目标机器把密钥加到授权keys以后,从发出机器测试能免密登陆到目标机器后,及时清理传过来的id_rsa.pub,因为后面还要接收其它机器传过来的密钥,避免受到干扰,漏把id_rsa.pub传到授权keys里,或把其它机器的密钥再传一次到授权keys里。

    幸福都是奋斗出来的,努力奋斗才能梦想成真。坚持自律,约束自我,克制弱点,坚持努力,遇见更好的自己。
  • 相关阅读:
    no copy constructor available or copy constructor is declared 'explicit'
    Jetty:配置连接器
    DataTable数据转换为实体
    iOS 单元測试之XCTest具体解释(一)
    UDP C/S编程
    xml的加密和解密
    lua 加密
    shell脚本加密
    实现业务系统中的用户权限管理--设计篇
    通用用户权限系统设计(数据库设计)
  • 原文地址:https://www.cnblogs.com/SH170706/p/10312117.html
Copyright © 2011-2022 走看看