###免密钥是为了解决hadoop集群各个节点通讯的问题,即通讯不在须要填写密码,ssh链接的安全性由密钥验证机制来完成node
1、配置安全
注意的东西来了ssh
你配置的机器可能有多个用户,但你须要选一个来作hadoop的管理用户,而你接下来的操做将在hadoop的用户的根目录下即(当前用户是hadoop用户):~/ 目录下,其余的则在 /home/hadoop用户名/ 目录下 (未来ssh免密钥链接的是你hadoop用户)oop
注意区分:用户根目录与系统根目录spa
开始配置(如今默认当前用户是hadoop的用户)
orm
(1)跳到~/.ssh文件夹下: cd ~/.sshhadoop
( 2 )生成公钥id_rsa.pub和密钥id_rsa : ssh-keygen -t rsatest
( 3 ) 将id_rsa.pub的内容追加到authorized_keys文件中(公钥替换加到authorized_keys): cat id_rsa.pub > authorized_keys集群
( 4 )每个节点都进行(1)(2)(3)操做配置
( 5 )最后将全部节点的authorized_keys内容汇合:
每一个datanode节点都执行下面操做(authorized_keys1的名字要改)
scp ~/.ssh/authorized_keys hadooptest@172.16.19.1:~/.ssh/authorized_keys1
执行完后,在172.16.19.1的hadooptest的.ssh中将传来全部的authorized_keys,追加到本地的authorized_keys(每一个传来的authorized_keys执行一次):
cat authorized_keys1>> authorized_keys(这里是">>")
(6)将172.16.19.1的hadooptest的.ssh中的authorized_keys再分发给各个节点。
一样是scp命令,就不写了。
2、错误总结
一、hadoop运行须要链接其余节点出现要密码时,说明ssh免密钥没作好,要重作
2.注意authorized_keys的权限必须是600,不然还要密码