首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hadoop集群- "hadoop“用户ssh通信

Hadoop集群- "hadoop“用户ssh通信
EN

Stack Overflow用户
提问于 2018-08-13 12:18:35
回答 1查看 1.2K关注 0票数 1

我正在EC2服务器上设置Hadoop2.7.3集群--1 NameNode、1个二级NameNode和2个DataNodes。

Hadoop核心使用SSH与从节点通信,以启动从节点上的进程。

  1. 我们是否需要为hadoop用户在所有节点上拥有相同的SSH密钥?
  2. 将NameNode复制或添加到从节点SSH凭据的最佳实践/理想方法是什么?
EN

回答 1

Stack Overflow用户

发布于 2018-08-13 20:53:58

我们是否需要为hadoop用户在所有节点上拥有相同的SSH密钥?

  • 所有节点上都需要有相同的公钥。

将NameNode复制或添加到从节点SSH凭据的最佳实践/理想方法是什么?

每份文件:

Namenode:密码减SSH

名称节点和数据节点之间的无密码SSH。让我们为此在namenode上创建一个公共私钥对。

代码语言:javascript
复制
namenode> ssh-keygen

对键位置使用默认值(/home/ubuntu/.ssh/id_rsa),并对空密码按enter键。

Datanodes:安装公钥

公钥保存在/home/ubuntu/.ssh/id_rsa.pub中。我们需要将该文件从namenode复制到每个数据节点,并将内容附加到/home/ubuntu/..ssh/每个数据节点上。

代码语言:javascript
复制
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 Config

SSH对各种参数使用一个位于~/.ssh/config的配置文件。设置它,如下所示。同样,将每个节点的公共DNS替换为HostName参数(例如,用EC2公共DNS替换NameNode)。

代码语言:javascript
复制
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并按回车。这一步骤只需要一次):

代码语言:javascript
复制
namenode> ssh nnode
namenode> ssh dnode1
namenode> ssh dnode2
namenode> ssh dnode3
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51822209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档