我的问题非常简单,我想设置50个节点的hadoop集群,如何在50个节点之间设置无密码。如果手动操作非常困难!提前谢谢!
答案 0 :(得分:1)
您不需要在节点之间设置SSH,在主服务器和从服务器之间使用单向就足够了。 (因此只有主设备必须在没有密码的情况下访问从设备。)
通常的方法是编写一个bash脚本,它遍历你的从属文件并登录到你的从属服务器,将主服务器的公钥复制到从服务器的授权密钥中。
You can see a small workthrough on Praveen Sripati's blog.
然而,我不是管理员所以我不能告诉你是否有更聪明的方法。也许这更适合Superuser.com
答案 1 :(得分:0)
也许这会有所帮助:
要无缝工作,需要设置SSH以允许无密码 从群集中的计算机登录hadoop用户。最简单的 实现这一目标的方法是生成公钥/私钥对,以及 将其放在群集中共享的NFS位置。
首先, 通过在hadoop用户中键入以下内容来生成RSA密钥对 帐号:
%ssh-keygen -t rsa -f~ / .ssh / id_rsa
即使我们想要 无密码登录,没有密码短语的密钥不被认为是好的 练习(运行本地时可以使用空密码 伪分布式集群,如附录A)所述,因此我们指定 提示输入密码时的密码短语。我们将使用ssh-agent来避免 需要为每个连接输入密码。
私钥是 在-f选项指定的文件中,〜/ .ssh / id_rsa和public key存储在附加.pub的同名文件中, 的〜/ .ssh / id_rsa.pub。
接下来,我们需要确保公钥存在 集群中所有计算机上的〜/ .ssh / authorized_keys文件 我们想要连接到。如果hadoop用户的主目录是 如前所述,NFS文件系统可以共享密钥 通过键入以下内容跨集群:
%cat~ / .ssh / id_rsa.pub>> 〜/ .ssh / authorized_keys
如果未使用NFS共享主目录, 那么公钥需要通过其他方式共享。
测试 您可以通过确保从主服务器SSH到工作机器 sshagent正在运行,3然后运行ssh-add来存储你的密码。 您应该能够在不输入密码的情况下ssh给工作人员 试。
来源: Tom White,Hadoop:The Definitive Guide,page 301
答案 2 :(得分:-1)
您可以使用其中一个商业hadoop发行版(Hortonworks,Cloudera,IBM BigInsights等),他们都有安装程序。 特别是Cloudera有一个Cloudera Manager的版本,最多可以有50个节点(我想你很幸运:))。
( - 删除了对Apache Ambari的引用)