1

我的问题很简单,我想设置一个 50 个节点的 hadoop 集群,我该如何设置 50 个节点之间的无密码。如果手动操作是很困难的!提前致谢!

4

2 回答 2

1

您不需要在节点之间设置 SSH,在主从之间单向就足够了。(所以只有主人必须在没有密码的情况下访问奴隶)。

通常的方法是编写一个 bash 脚本,循环遍历您的从属文件并登录到您的从属,将主控的公钥复制到从属的授权密钥中。

您可以在 Praveen Sripati 的博客上看到一个小的解决方案。

但是,我不是管理员,所以我不能告诉你是否有更聪明的方法。也许这更适合Superuser.com

于 2012-12-25T10:50:10.893 回答
0

也许这可以帮助:

为了无缝工作,需要设置 SSH 以允许 hadoop 用户从集群中的机器进行无密码登录。实现这一点的最简单方法是生成公钥​​/私钥对,并将其放置在整个集群共享的 NFS 位置。

首先,通过在 hadoop 用户帐户中键入以下内容来生成 RSA 密钥对:

% ssh-keygen -t rsa -f ~/.ssh/id_rsa

即使我们想要无密码登录,但没有密码短语的密钥被认为是不好的做法(运行本地伪分布式集群时可以使用空密码短语,如附录 A 中所述),因此我们在提示输入密码时指定密码。我们将使用 ssh-agent 来避免每次连接都需要输入密码。

私钥在 -f 选项指定的文件 ~/.ssh/id_rsa 中,而公钥存储在同名文件中,并附加了 .pub 文件 ~/.ssh/id_rsa.pub。

接下来,我们需要确保公钥在我们要连接的集群中所有机器上的 ~/.ssh/authorized_keys 文件中。如果 hadoop 用户的主目录是 NFS 文件系统,如前所述,则可以通过键入以下内容在集群中共享密钥:

% 猫 ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

如果未使用 NFS 共享主目录,则需要通过其他方式共享公钥。

通过确保 sshagent 正在运行,3 然后运行 ​​ssh-add 来存储您的密码,以测试您是否可以从主计算机通过 SSH 连接到工作计算机。您应该能够 ssh 到工作人员而无需再次输入密码。

资料来源:Tom White,Hadoop:权威指南,第 301 页

在这里谷歌搜索: https ://www.google.rs/url?sa=t& rct =j&q=&esrc=s&source=web&cd=22&cad=rja&ved=0CDYQFjABOBQ&url=http%3A%2F%2Fbigdata.googlecode.com%2Ffiles%2FOreilly .Hadoop.The.Definitive.Guide.3rd.Edition.Jan.2012.pdf&ei=sGzZULb6OfOM0wWhlYDYAw&usg=AFQjCNGvNUZcQBvM_Ucqf_K0JGAlCRxr3A&sig2=Qpa_KZyP1mXXm9yQv0ynRw&bvm=bv.1355534169,d.d2

于 2012-12-25T17:05:45.020 回答