Hadoop集群部署教程-P1
Hadoop集群部署教程:SSH免密登录与hosts文件配置
第一章:SSH免密登录配置
1.1 配置SSH免密登录的必要性
Hadoop集群运行时,NameNode需要通过SSH协议启动和管理各个DataNode上的守护进程。由于Hadoop不支持交互式密码输入,必须配置SSH免密登录,否则:
- 每次启动集群都需要手动输入每个节点的密码
- 集群管理操作(如节点扩展、故障恢复)将无法自动完成
1.2 生成SSH密钥对
在所有节点(Master和Slave)上执行以下操作:
生成RSA密钥对(如果尚未生成):
ssh-keygen -t rsa
连续按三次回车,使用默认设置(不设置密码)
生成的密钥默认存储在
~/.ssh/
目录下:-
id_rsa
:私钥(必须严格保密) -
id_rsa.pub
:公钥(可自由分发)
-
确保
.ssh
目录权限正确:chmod 700 ~/.ssh
1.3 配置Master节点的免密登录
在Master节点上,将公钥复制到所有Slave节点(包括自身):
ssh-copy-id -i ~/.ssh/id_rsa.pub whzy@slave1 ssh-copy-id -i ~/.ssh/id_rsa.pub whzy@slave2 ssh-copy-id -i ~/.ssh/id_rsa.pub whzy@master # 自身也需要配置
- 首次连接时需要输入"yes"确认主机指纹
- 需要输入目标节点的用户密码
手动配置方法(如果
ssh-copy-id
不可用):cat ~/.ssh/id_rsa.pub | ssh whzy@slave1 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
1.4 验证免密登录
在Master节点上测试连接到各个节点:
ssh slave1 # 应该直接登录,无需密码
exit
ssh slave2 # 应该直接登录,无需密码
exit
ssh master # 自身连接测试
如果仍需密码,检查:
-
authorized_keys
文件权限(应为600) -
.ssh
目录权限(应为700) - SELinux状态(临时禁用:
setenforce 0
)
第二章:hosts文件配置
2.1 配置hosts文件的重要性
Hadoop集群节点间需要通过主机名相互通信。配置/etc/hosts
文件可以:
- 避免依赖不稳定的DNS解析
- 确保所有节点使用统一的主机名映射
- 提高集群内部通信的可靠性
2.2 编辑hosts文件
在所有节点上执行:
使用root权限编辑
/etc/hosts
文件:sudo vi /etc/hosts
添加所有集群节点的IP和主机名映射(示例):
192.168.131.136 master 192.168.131.137 slave1 192.168.131.138 slave2
确保包含:
- 每个节点的固定IP地址
- 正式使用的主机名(与Hadoop配置一致)
- 本地回环地址(127.0.0.1)的映射
2.3 验证主机名解析
在每个节点上执行:
ping master -c 3
ping slave1 -c 3
ping slave2 -c 3
应能正确解析并收到响应。
2.4 设置永久主机名(可选)
如果主机名尚未设置,可在每个节点上执行:
# 在master节点
sudo hostnamectl set-hostname master
# 在slave1节点
sudo hostnamectl set-hostname slave1
# 在slave2节点
sudo hostnamectl set-hostname slave2
第三章:常见问题排查
3.1 SSH连接问题
问题现象:
- 连接时仍要求输入密码
- 连接超时或拒绝
解决方案:
检查
sshd
服务是否运行:systemctl status sshd
检查防火墙设置:
systemctl stop firewalld # 临时关闭 systemctl disable firewalld # 永久关闭
检查
/etc/ssh/sshd_config
配置:RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no # 配置免密后可禁用密码登录
3.2 主机名解析问题
问题现象:
- 节点间无法通过主机名通信
- 显示"Unknown host"错误
解决方案:
确认所有节点的
/etc/hosts
内容一致检查网络连通性:
ping <IP地址> # 先测试IP是否可达
检查主机名大小写是否一致
第四章:下一步准备
完成本章配置后,您的集群应具备:
- 所有节点间的SSH免密登录能力
- 正确的主机名解析配置
- 基本的通信验证通过
接下来可以继续:
- Hadoop基础环境配置(JAVA_HOME等)
- Hadoop核心配置文件修改
- 集群初始化和启动测试