Hadoop集群SSH服务和免密码登录的配置
来源:互联网 发布:大数据分析可视化 编辑:程序博客网 时间:2024/05/17 17:15
前言: SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working
Group)所制定;SSH 为建立在 应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的
协议。在Hadoop集群或其他集群中广泛应用用,可用于机器之间免密码登录和执行脚本,如的Hadoop集群中
NameNode启动的时候会远程执行脚本把集群中DataNode的也一起启动起来。
首先应该安装ssh服务,一般CentOS和fedora等发行版系统默认安装好了ssh服务,如果没有安装那么可 以使用yum
如果是Ubuntu可以使用
install openssh-serverapt-get install openssh-server
安装
对于集群间免密的设置也很简单,只要知道原理就好做了,分别在每台机器上按照上面配置本地免密登录,然后将其余每台机器生成的~/.ssh/id_dsa.pub公钥内容追加到其中一台主机的authorized_keys中,然后将这台机器中包括每台机器公钥的authorized_keys文件发送到集群中所有的服务器;这样集群中每台服务器都拥有所有服务器的公钥,这样集群间任意两台机器都可以实现免密登录了。
免密的核心思想就是:如果B服务器authorized_keys有A服务器的公钥(锁),那么A服务器可以免密登录B服务器。
首先保证主机名、hosts、防火墙正确设置
一、A服务器免密登录集群下任意一台服务器(集群中服务器都有A服务器公钥【锁】)
1、配置A服务器本身公钥和免密
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsacat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
现在每台节点本身实现免密
2、实现免密登录(复制锁)
方法一:将A服务器的公钥注册到其他集群服务器上(手动配置)
ssh-copy-id -i ~/.ssh/id_dsa.pub 192.168.100.12(IP地址) # 在集群其他服务器上执行yes输入其他服务器密码
方法二:编写Shell脚本自动注册到其他集群服务器上
编写shell脚本自动执行
vi nopass.sh #分发脚本
#!/bin/bashSERVERS="192.168.100.13 192.168.100.14 192.168.100.15 192.168.100.16 192.168.100.17"PASSWORD=rootauto_ssh_copy_id() { expect -c "set timeout -1; spawn ssh-copy-id $1; expect { *(yes/no)* {send -- yes\r;exp_continue;} *assword:* {send -- $2\r;exp_continue;} eof {exit 0;} }";}ssh_copy_id_to_all() { for SERVER in $SERVERS do auto_ssh_copy_id $SERVER $PASSWORD done}ssh_copy_id_to_all
3)修改文件执行权限
chmod +700 nopass.sh
4)运行,进入脚本目录下
./nopass.sh
若显示:
./nopass.sh:行4: expect: 未找到命令
需要安装expect,可以:yum install expect
二、集群所有节点互相免密(集群中任意服务器都有其他服务器公钥【锁】)
1、配置所有各自服务器本身公钥和免密
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsacat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
现在每台节点本身实现免密
2、将除A服务器之外所有节点的公钥复制到A上,这里是将hadoop2,hadoop3的公钥拷贝到A的authorized_keys,目的是实现hadoop2,hadoop3登录A实现免密,而反过来不行
ssh-copy-id -i ~/.ssh/id_dsa.pub 192.168.100.11 # 在hadoop2上执行ssh-copy-id -i ~/.ssh/id_dsa.pub 192.168.100.11 # 在hadoop3上执行...
3、实现最终集群所有节点互相免密
方法一:手动
现在hadoop1(A)保存了所有节点的公钥,那么这个时候应该发送hadoop1上的authorized_keys到其他节点
scp ~/.ssh/authorized_keys 192.168.100.12:~/.ssh/scp ~/.ssh/authorized_keys 192.168.100.13:~/.ssh/
方法一:自动
编写shell脚本自动执行
vi nopass.sh #分发脚本
#!/bin/bashSERVERS="192.168.100.13 192.168.100.14 192.168.100.15 192.168.100.16 192.168.100.17"PASSWORD=rootauto_ssh_copy_id() { expect -c "set timeout -1; spawn ssh-copy-id $1; expect { *(yes/no)* {send -- yes\r;exp_continue;} *assword:* {send -- $2\r;exp_continue;} eof {exit 0;} }";}ssh_copy_id_to_all() { for SERVER in $SERVERS do auto_ssh_copy_id $SERVER $PASSWORD done}ssh_copy_id_to_allfor SERVER in $SERVERSdo scp ~/.ssh/authorized_keys root@$SERVER:~/.ssh/done
3)修改文件执行权限
chmod +700 nopass.sh
4)运行,进入脚本目录下
./nopass.sh
- Hadoop集群SSH服务和免密码登录的配置
- hadoop集群免密码ssh登录配置注意执行权限
- Hadoop集群中SSH免密码登录
- 配置集群ssh免密码登录
- CentOS 集群 ssh 免密码登录配置
- hadoop配置免密码ssh登录
- Hadoop配置SSH免密码登录
- SSH免密码登录原理和配置
- SSH免密码登录的配置
- SSH免密码登录的配置
- 大数据配置集群ssh免密码登录
- 分布式集群配置SSH免密码登录,时间同步
- CentOS 配置集群机器之间SSH免密码登录
- 配置ssh免密码登录——集群学习日记
- CentOS 配置集群机器之间SSH免密码登录
- hadoop集群下配置ssh本机免密码登陆
- hadoop集群上如何配置免密码SSH登陆
- hadoop环境搭建之配置SSH免密码登录
- 树莓派3三款中文输入法安装图文教程
- 红宝书 第9章整理——客户端检测
- sql2005属性IsLocked不可用于登录sa解决方案
- 使用WinRadius服务器软件 搭建 radius 认证
- 利用tomcat7发布项目报内存溢出错误的解决方法之一
- Hadoop集群SSH服务和免密码登录的配置
- QT make时出现的错误 NO SUCH FILE
- SpringBoot学习笔记二(常规属性配置,类型安全配置,日志配置,Profile配置)
- Learning Spark笔记1-Spark介绍
- 邮件服务器搭建——linux中PowerMTA+OEMPRO安装与配置方案
- 六properties属性文件的使用
- ntko打开文件,区分图片和office
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(七)图片上传功能
- shell脚本编程入门基础(附:自动备份与解包文件脚本)