我正在EC2服务器上设置Hadoop 2.7.3集群-1个NameNode,1个次要NameNode和2个DataNode。
Hadoop核心使用SSH与从属进行通信以在从属节点上启动进程。
答案 0 :(得分:0)
我们需要在hadoop用户的所有节点上使用相同的SSH密钥吗?
将NameNode复制或添加到的最佳实践/理想方法是什么 从节点SSH凭据?
名称节点:密码少SSH
名称节点和数据节点之间的无密码SSH。让我们 为此,请在名称节点上创建一个公私钥对。
namenode> ssh-keygen
使用默认(
/home/ubuntu/.ssh/id_rsa
)作为关键位置,然后 按Enter键输入空密码。
数据节点:设置公共密钥
公钥保存在
/home/ubuntu/.ssh/id_rsa.pub
中。我们要 将此文件从namenode复制到每个数据节点,然后附加 每个数据节点上的/home/ubuntu/.ssh/authorized_keys中的内容。
datanode1> cat id_rsa.pub >> ~/.ssh/authorized_keys
datanode2> cat id_rsa.pub >> ~/.ssh/authorized_keys
datanode3> cat id_rsa.pub >> ~/.ssh/authorized_keys
名称节点:设置SSH配置
SSH将〜/ .ssh / config中的配置文件用于各种 参数。如下所示进行设置。同样,替换每个节点的 HostName参数的公共DNS(例如,替换 使用EC2的NameNode的公共DNS)。
Host nnode
HostName <nnode>
User ubuntu
IdentityFile ~/.ssh/id_rsa
Host dnode1
HostName <dnode1>
User ubuntu
IdentityFile ~/.ssh/id_rsa
Host dnode2
HostName <dnode2>
User ubuntu
IdentityFile ~/.ssh/id_rsa
Host dnode3
HostName <dnode3>
User ubuntu
IdentityFile ~/.ssh/id_rsa
这时,请确认无密码操作在每个节点上均有效 如下所示(第一次,您将收到一条警告,指出主机是 未知以及是否要连接到它。输入yes,然后按Enter。 此步骤只需一次):
namenode> ssh nnode
namenode> ssh dnode1
namenode> ssh dnode2
namenode> ssh dnode3