Hadoop集群部署教程-P1

发布于:2025-04-18 ⋅ 阅读:(21) ⋅ 点赞:(0)

Hadoop集群部署教程-P1

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

第一章:SSH免密登录配置

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

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

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

1.2 生成SSH密钥对

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

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

    ssh-keygen -t rsa
    
    • 连续按三次回车,使用默认设置(不设置密码)

    • 生成的密钥默认存储在~/.ssh/​目录下:

      • id_rsa​:私钥(必须严格保密)
      • id_rsa.pub​:公钥(可自由分发)
  2. 确保.ssh​目录权限正确:

    chmod 700 ~/.ssh
    

1.3 配置Master节点的免密登录

  1. 在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"确认主机指纹
    • 需要输入目标节点的用户密码
  2. 手动配置方法(如果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文件

在所有节点上执行:

  1. 使用root权限编辑/etc/hosts​文件:

    sudo vi /etc/hosts
    
  2. 添加所有集群节点的IP和主机名映射(示例):

    192.168.131.136 master
    192.168.131.137 slave1
    192.168.131.138 slave2
    
  3. 确保包含:

    • 每个节点的固定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连接问题

问题现象

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

解决方案

  1. 检查sshd​服务是否运行:

    systemctl status sshd
    
  2. 检查防火墙设置:

    systemctl stop firewalld  # 临时关闭
    systemctl disable firewalld  # 永久关闭
    
  3. 检查/etc/ssh/sshd_config​配置:

    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    PasswordAuthentication no  # 配置免密后可禁用密码登录
    

3.2 主机名解析问题

问题现象

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

解决方案

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

  2. 检查网络连通性:

    ping <IP地址>  # 先测试IP是否可达
    
  3. 检查主机名大小写是否一致

第四章:下一步准备

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

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

接下来可以继续:

  • Hadoop基础环境配置(JAVA_HOME等)
  • Hadoop核心配置文件修改
  • 集群初始化和启动测试

网站公告

今日签到

点亮在社区的每一天
去签到