首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Hadoop集群部署教程-P1

Hadoop集群部署教程-P1

作者头像
奶油话梅糖
发布2025-04-17 12:40:22
发布2025-04-17 12:40:22
21700
代码可运行
举报
运行总次数:0
代码可运行

Hadoop集群部署教程-P1

Hadoop集群部署教程:SSH免密登录与hosts文件配置

第一章:SSH免密登录配置

1.1 配置SSH免密登录的必要性

Hadoop集群运行时,NameNode需要通过SSH协议启动和管理各个DataNode上的守护进程。由于Hadoop不支持交互式密码输入,必须配置SSH免密登录,否则:

  • 每次启动集群都需要手动输入每个节点的密码
  • 集群管理操作(如节点扩展、故障恢复)将无法自动完成
1.2 生成SSH密钥对

在所有节点(Master和Slave)上执行以下操作:

生成RSA密钥对(如果尚未生成):

代码语言:javascript
代码运行次数:0
运行
复制
ssh-keygen -t rsa
  • 连续按三次回车,使用默认设置(不设置密码)
  • 生成的密钥默认存储在~/.ssh/​目录下:
    • id_rsa​:私钥(必须严格保密)
    • id_rsa.pub​:公钥(可自由分发)

确保.ssh​目录权限正确:

代码语言:javascript
代码运行次数:0
运行
复制
chmod 700 ~/.ssh
1.3 配置Master节点的免密登录

在Master节点上,将公钥复制到所有Slave节点(包括自身):

代码语言:javascript
代码运行次数:0
运行
复制
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​不可用):

代码语言:javascript
代码运行次数:0
运行
复制
cat ~/.ssh/id_rsa.pub | ssh whzy@slave1 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
1.4 验证免密登录

在Master节点上测试连接到各个节点:

代码语言:javascript
代码运行次数:0
运行
复制
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​文件:

代码语言:javascript
代码运行次数:0
运行
复制
sudo vi /etc/hosts

添加所有集群节点的IP和主机名映射(示例):

代码语言:javascript
代码运行次数:0
运行
复制
192.168.131.136 master
192.168.131.137 slave1
192.168.131.138 slave2

确保包含:

  • 每个节点的固定IP地址
  • 正式使用的主机名(与Hadoop配置一致)
  • 本地回环地址(127.0.0.1)的映射
2.3 验证主机名解析

在每个节点上执行:

代码语言:javascript
代码运行次数:0
运行
复制
ping master -c 3
ping slave1 -c 3
ping slave2 -c 3

应能正确解析并收到响应。

2.4 设置永久主机名(可选)

如果主机名尚未设置,可在每个节点上执行:

代码语言:javascript
代码运行次数:0
运行
复制
# 在master节点
sudo hostnamectl set-hostname master

# 在slave1节点
sudo hostnamectl set-hostname slave1

# 在slave2节点
sudo hostnamectl set-hostname slave2

第三章:常见问题排查

3.1 SSH连接问题

问题现象

  • 连接时仍要求输入密码
  • 连接超时或拒绝

解决方案

检查sshd​服务是否运行:

代码语言:javascript
代码运行次数:0
运行
复制
systemctl status sshd

检查防火墙设置:

代码语言:javascript
代码运行次数:0
运行
复制
systemctl stop firewalld  # 临时关闭
systemctl disable firewalld  # 永久关闭

检查/etc/ssh/sshd_config​配置:

代码语言:javascript
代码运行次数:0
运行
复制
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no  # 配置免密后可禁用密码登录
3.2 主机名解析问题

问题现象

  • 节点间无法通过主机名通信
  • 显示"Unknown host"错误

解决方案

确认所有节点的/etc/hosts​内容一致

检查网络连通性:

代码语言:javascript
代码运行次数:0
运行
复制
ping <IP地址>  # 先测试IP是否可达

检查主机名大小写是否一致

第四章:下一步准备

完成本章配置后,您的集群应具备:

  • 所有节点间的SSH免密登录能力
  • 正确的主机名解析配置
  • 基本的通信验证通过

接下来可以继续:

  • Hadoop基础环境配置(JAVA_HOME等)
  • Hadoop核心配置文件修改
  • 集群初始化和启动测试
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Hadoop集群部署教程-P1
  • Hadoop集群部署教程:SSH免密登录与hosts文件配置
    • 第一章:SSH免密登录配置
      • 1.1 配置SSH免密登录的必要性
      • 1.2 生成SSH密钥对
      • 1.3 配置Master节点的免密登录
      • 1.4 验证免密登录
    • 第二章:hosts文件配置
      • 2.1 配置hosts文件的重要性
      • 2.2 编辑hosts文件
      • 2.3 验证主机名解析
      • 2.4 设置永久主机名(可选)
    • 第三章:常见问题排查
      • 3.1 SSH连接问题
      • 3.2 主机名解析问题
    • 第四章:下一步准备
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档