Linux:实现Hadoop集群Master无密码登录(SSH)各个子节点
以下所介绍的安装方式都是在线安装方式,如果你需要连网请参考:Linux:宿主机通过桥接方式连接的VMware内部Linux14.04虚拟机(静态IP)实现上网方案
- 环境:
OS:Linux Ubuntu14.04 Server X64;
服务器列表:
192.168.1.200 master
192.168.1.201 node1
192.168.1.202 node2
192.168.1.203 node3
- 安装SSH服务
测试是否安装了SSH:
sudo ps -e | grep ssh
如果返回包含sshd的进程,就表示已经安装过openssh-server服务,否则未安装。
安装openssh-server服务:
sudo apt-get install openssh-server
如果提示安装失败,请执行更新命令:
sudo apt-get update
不过本人在更新过程中遇到问题,执行安装ssh也出现问题:Package openssh-server is not available, but is referred to by another package.
解决方案请参考:Linux:安装OpenSSH-Server E:Package openssh-server has no installation candidate
ssh 服务操作命令:
备注:
为了实现各个子节点都可以使用putty连接,把Master,node1,node2,node3都安装了ssh服务。
而事实上,要是master可以无密码登录各个子节点,其他子节点(node1,node2,node3)也必须安装ssh服务。
- 为Master机器配置SSH无密码登录
1)设置master的ssh为无需密码自动登录
切换到hadoop账户下(保证用户hadoop可以无需密码登录,应为我们后边安装hadoop属于的账户是hadoop账户)
su - hadoop cd /home/hadoop ssh-keygen -t rsa
然后会遇到三次让输入的时候,第一次直接回车,第二次和第三次分别是:让输入密码和确认密码,我们这里是要实现无密码登录。所以以上三次输入都直接回车,不设置什么密码,也就是空密码登录。
2)之后再/home/hadoop/下会产生一个.ssh的文件夹;ls查看:
3)将公钥追加到authorized_keys文件中
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
4)master本机使用ssh localhost测试:
第一次会提示是否“Are you sure you want to continue connecting(yes/no)?”,直接输入yes,下一次输入ssh localhost就不会在提示了。
5)修改各个节点(master,node1,node2,node3)的hosts:
统计添加如下host列表:
目的,为后边实现ssh连接使用,不用输入ip,使用机器名就可以。
6)为了确保master可以无需密码自动登录到node1,node2和node3,现在node1,node2和node3上生成authorized_keys。
(依次为三个子节点node1,node2,node3)执行命令:
su hadoop cd /home/hadoop ssh-keygen -t rsa
一路回车,和master安装方式一样。
7)复制master上的authorized_keys到三个子节点上(node1,node2,node3):
首先,为了避免权限问题,我们可以事先设置文件和目录权限:
#设置authorized_keys权限 $ chmod 600 authorized_keys #设置.ssh目录权限 $ chmod 700 -R .ssh
然后拷贝master上的authorized_keys到三个子节点上(node1,node2,node3)
这里会提示输入密码,输入hadoop账号密码就可以了。
8)测试:ssh node1、ssh node2和ssh node3(第一次需要输入yes)
如果不需要输入密码,就表示配置成功,否则配置失败。
参考资料:
ssh-keygen 的 详解 :http://blog.csdn.net/wh_19910525/article/details/7433164
Hadoop集群配置(最全面总结):http://blog.csdn.net/hguisu/article/details/7237395
基础才是编程人员应该深入研究的问题,比如:
1)List/Set/Map内部组成原理|区别
2)mysql索引存储结构&如何调优/b-tree特点、计算复杂度及影响复杂度的因素。。。
3)JVM运行组成与原理及调优
4)Java类加载器运行原理
5)Java中GC过程原理|使用的回收算法原理
6)Redis中hash一致性实现及与hash其他区别
7)Java多线程、线程池开发、管理Lock与Synchroined区别
8)Spring IOC/AOP 原理;加载过程的。。。
【+加关注】。