温馨提示×

centos hdfs怎样配免密登录

小樊
49
2026-10-06 09:10:35
栏目: 智能运维

在 CentOS 上配置 HDFS(Hadoop)免密登录,本质就是配置 SSH 公钥认证,让 NameNode 能无密码 SSH 到各个 DataNode(以及自身)。

下面以 Hadoop 用户(如 hadoop) 为例,一步一步说明。


一、前提条件

  • 已安装 Hadoop
  • 所有节点(NameNode / DataNode)使用 同一个用户(如 hadoop)
  • 各节点主机名可解析(/etc/hosts 或 DNS)

二、生成 SSH 密钥(在 NameNode 上)

su - hadoop
ssh-keygen -t rsa

一路回车即可,生成:

  • ~/.ssh/id_rsa
  • ~/.ssh/id_rsa.pub

三、配置本机免密(NameNode → 自己)

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

测试:

ssh localhost

不需要密码即成功。


四、分发公钥到其他节点(DataNode)

假设 DataNode 主机名:

  • slave1
  • slave2
ssh-copy-id hadoop@slave1
ssh-copy-id hadoop@slave2

或手动方式:

scp ~/.ssh/id_rsa.pub hadoop@slave1:~/
ssh hadoop@slave1
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

五、测试免密登录

ssh slave1
ssh slave2

都不需要密码 即配置成功。


六、HDFS 启动验证

start-dfs.sh
jps

应能看到:

  • NameNode
  • DataNode
  • SecondaryNameNode

七、常见问题排查

1. 仍然需要密码

检查:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

2. SELinux 导致失败

getenforce

若为 Enforcing,可临时关闭测试:

setenforce 0

3. 防火墙

systemctl stop firewalld

八、总结一句话

HDFS 免密登录 = Hadoop 用户 SSH 公钥互信

如果你需要 集群规模配置 / 多用户 / root 免密 / Ansible 批量配置,可以继续问我。

0 踩