hadoop中的ssh无密码登录配置
2014-08-25 22:02
387 查看
目标:
在配置hadoop分布式安装过程中,需要配置ssh的无密码登录。在组建hadoop集群的时候,需要多台实体机进行通信(发送或者读取数据,namenode和datanode之间)就是借助ssh,在通信过程中如果需要操作人员频繁输入密码是不切实际的,所以需要ssh的无密码登录。
环境:
主机qiuchenl0,namenode,ubuntu12.04 操作系统,用户名qiuchenl
从机qiuchenl1,datanode,fedora14 操作系统,用户名qiuchenl
JDK1.7
Hadoop 0.20.205.0
HBase 0.90.5
配置:
首先请确保防火墙都处于关闭状态,具体命令是ufs disable。并确保安装ssh spenssh-server。
在主机qiuchenl0中执行以下命令:
cd ~/.ssh (进入用户目录下的隐藏文件.ssh)
ssh-keygen -t rsa (用rsa生成密钥)
cp id_rsa.pub authorized_keys (把公钥复制一份,并改名为authorized_keys,这步执行完,应该ssh localhost可以无密码登录本机了,可能第一次要密码)
scp authorized_keysqiuchenl@qiuchenl1:/home/qiuchenl/.ssh (把重命名后的公钥通过ssh提供的远程复制文件复制到从机qiuchenl1上面)
chmod 600 authorized_keys (更改公钥的权限,也需要在从机qiuchenl1中执行同样代码)
ssh qiuchenl1 (可以远程无密码登录qiuchenl1这台机子了,注意是ssh不是sudo ssh。第一次需要密码,以后不再需要密码)
注意:
在安装分布式hadoop过程中,需要将所有机子的用户名改为一样,如我的例子:qiuchenl。在linux下,有“主机名”和“用户名”之分。“主机名”相当与机子的IP,是该机子的唯一标识(可以用命令hostname来查看本机主机名),而一个操作系统可以有多个用户,每个用户都有用户名,如我的qiuchenl(root也是一个用户,只不过权限比较大)。
我们如果要访问其他主机,都是通过对方的ip来访问,比如ping 192.168.2.166.既然主机名也是标识,为什么不能ping qiuchenl0呢。因为当前机子步识别这个主机名,需要修改/etc/profile文件如下:
现在就把ip和主机名一一对应起来,也就可以ping qiuchenl0了。
下面回归正题,ssh远程登录其他机子,是登入那个机子的某个用户,所以在上面的第四步 我是把公钥文件拷贝到qiuchenl1主机下的qiuchenl用户,所以我只能远程控制该用户。再看上面第6步,要登录qiuchenl1的qiuchenl用户,命令应该是ssh qiuchenl@qiuchenl1,为什么是ssh qiuchenl1就可以呢。因为ssh qiuchenl1 会默认以当前主机的用户名(也就是qiuchenl0的qiuchenl)来远程登录。因为qiuchenl0和qiuchenl1两个机子的用户名都是qiuchenl,所以可以用ssh
qiuchenl1代替 ssh qiuchenl@qiuchenl1.如果qiuchenl1这台主机没有qiuchenl这个用户,那么ssh qiuchenl1就无法使用。
最后:
既然可以用ssh qiuchenl@qiuchenl1 代替ssh qiuchenl1,就没有必要让hadoop每台自己的用户名一样。这样想是不对的。因为ssh远程无密码登入可以用ssh qiuchenl@qiuchenl1。但是hadoop内部是不会这样智能处理的。所以在配置hadoop集群时,要把所有机子的用户名设置一样。
在配置hadoop分布式安装过程中,需要配置ssh的无密码登录。在组建hadoop集群的时候,需要多台实体机进行通信(发送或者读取数据,namenode和datanode之间)就是借助ssh,在通信过程中如果需要操作人员频繁输入密码是不切实际的,所以需要ssh的无密码登录。
环境:
主机qiuchenl0,namenode,ubuntu12.04 操作系统,用户名qiuchenl
从机qiuchenl1,datanode,fedora14 操作系统,用户名qiuchenl
JDK1.7
Hadoop 0.20.205.0
HBase 0.90.5
配置:
首先请确保防火墙都处于关闭状态,具体命令是ufs disable。并确保安装ssh spenssh-server。
在主机qiuchenl0中执行以下命令:
cd ~/.ssh (进入用户目录下的隐藏文件.ssh)
ssh-keygen -t rsa (用rsa生成密钥)
cp id_rsa.pub authorized_keys (把公钥复制一份,并改名为authorized_keys,这步执行完,应该ssh localhost可以无密码登录本机了,可能第一次要密码)
scp authorized_keysqiuchenl@qiuchenl1:/home/qiuchenl/.ssh (把重命名后的公钥通过ssh提供的远程复制文件复制到从机qiuchenl1上面)
chmod 600 authorized_keys (更改公钥的权限,也需要在从机qiuchenl1中执行同样代码)
ssh qiuchenl1 (可以远程无密码登录qiuchenl1这台机子了,注意是ssh不是sudo ssh。第一次需要密码,以后不再需要密码)
注意:
在安装分布式hadoop过程中,需要将所有机子的用户名改为一样,如我的例子:qiuchenl。在linux下,有“主机名”和“用户名”之分。“主机名”相当与机子的IP,是该机子的唯一标识(可以用命令hostname来查看本机主机名),而一个操作系统可以有多个用户,每个用户都有用户名,如我的qiuchenl(root也是一个用户,只不过权限比较大)。
我们如果要访问其他主机,都是通过对方的ip来访问,比如ping 192.168.2.166.既然主机名也是标识,为什么不能ping qiuchenl0呢。因为当前机子步识别这个主机名,需要修改/etc/profile文件如下:
现在就把ip和主机名一一对应起来,也就可以ping qiuchenl0了。
下面回归正题,ssh远程登录其他机子,是登入那个机子的某个用户,所以在上面的第四步 我是把公钥文件拷贝到qiuchenl1主机下的qiuchenl用户,所以我只能远程控制该用户。再看上面第6步,要登录qiuchenl1的qiuchenl用户,命令应该是ssh qiuchenl@qiuchenl1,为什么是ssh qiuchenl1就可以呢。因为ssh qiuchenl1 会默认以当前主机的用户名(也就是qiuchenl0的qiuchenl)来远程登录。因为qiuchenl0和qiuchenl1两个机子的用户名都是qiuchenl,所以可以用ssh
qiuchenl1代替 ssh qiuchenl@qiuchenl1.如果qiuchenl1这台主机没有qiuchenl这个用户,那么ssh qiuchenl1就无法使用。
最后:
既然可以用ssh qiuchenl@qiuchenl1 代替ssh qiuchenl1,就没有必要让hadoop每台自己的用户名一样。这样想是不对的。因为ssh远程无密码登入可以用ssh qiuchenl@qiuchenl1。但是hadoop内部是不会这样智能处理的。所以在配置hadoop集群时,要把所有机子的用户名设置一样。
相关文章推荐
- VMWare Workstation上使用RedHat Linux安装和配置Hadoop群集环境03_配置虚拟机之间SSH无密码登录
- 从零开始搭建hadoop分布式集群环境:(四)配置ssh无密码登录
- 脚本自动配置hadoop集群的ssh无密码登录
- Hadoop集群搭建之SSH无密码登录配置错误解析
- 搭建Hadoop平台(二)之SSH免密码登录配置
- 解决ssh配置无密码登录后 又出现输入密码的情况--Hadoop集群配置
- ubuntu 中ssh无密码配置 ,hadoop节点之间无密码登录
- Hadoop集群搭建之SSH无密码登录配置
- 解决root用户ssh配置无密码登陆/hadoop用户照仿可以实现相同功能:hadoop用户登录并且把命令的所有root换成home/hadoop
- ssh面密码登录配置-hadoop安装准备
- 在VMWare Workstation8.0上使用ubuntu11安装和配置Hadoop群集环境02_配置虚拟机之间SSH无密码登录
- Hadoop集群安装(六)--------CentOS配置SSH无密码登录
- Hadoop配置SSH免密码登录
- 【hadoop之翊】——hadoop配置ssh免密码登录,解决ssh设置好了依然需要输入密码的问题
- Hadoop之——CentOS配置ssh无密码登录注意事项
- Hadoop/spark安装实战(系列篇2)安装虚拟机、PieTTY、winscp、JDK、配置DNS、SSH免密码登录
- Ubuntu hadoop 伪分布式环境搭建步骤+ssh密钥(免密码登录)配置
- Hadoop的配置与运行(2)之SSH免密码登录
- 解决ssh配置无密码登录后 又出现输入密码的情况--hadoop集群配置
- hadoop配置完ssh免密码登录后仍然需要输入密码的问题