当前位置: 首页 > news >正文

配置Hadoop集群-免密登录

在 Hadoop 集群中配置免密登录是确保各节点间高效通信的关键步骤。以下是基于 SSH 密钥认证的免密登录配置方案,支持主节点(NameNode)到所有从节点(DataNode)的无密码访问:

1. 环境准备

  • 集群规划(示例):

    • 主节点(NameNode):master(IP:192.168.1.100)
    • 从节点 1(DataNode):slave1(IP:192.168.1.101)
    • 从节点 2(DataNode):slave2(IP:192.168.1.102)
  • ** hosts 文件配置 **:
    所有节点的 /etc/hosts 文件需包含完整的节点映射:

    bash

    192.168.1.100  master
    192.168.1.101  slave1
    192.168.1.102  slave2
    

2. 生成 SSH 密钥对

在 主节点master)上执行以下命令:

bash

# 生成 RSA 密钥对(无需密码)
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa# 查看生成的密钥文件
ls ~/.ssh/
# 输出应包含:id_rsa(私钥)和 id_rsa.pub(公钥)

3. 分发公钥到所有节点

将主节点的公钥(id_rsa.pub)分发到 所有节点(包括主节点自身):

bash

# 方法一:逐个节点分发(适用于少量节点)
ssh-copy-id root@master
ssh-copy-id root@slave1
ssh-copy-id root@slave2# 方法二:批量分发(适用于大量节点,需先准备节点列表)
NODES="master slave1 slave2"
for node in $NODES; dossh-copy-id root@$node
done

注意:首次执行 ssh-copy-id 时需输入目标节点密码,后续即可免密登录。

4. 验证免密登录

在主节点上测试到各节点的连接:

bash

# 测试主节点自身
ssh master# 测试从节点1
ssh slave1# 测试从节点2
ssh slave2

若无需输入密码即可登录,表示配置成功。

5. 优化 SSH 连接

修改主节点的 SSH 配置(~/.ssh/config),加速连接:

bash

# 创建/编辑配置文件
cat > ~/.ssh/config << EOF
Host *StrictHostKeyChecking no  # 自动接受新节点的密钥UserKnownHostsFile /dev/null  # 不记录已访问节点的密钥ConnectTimeout 5  # 连接超时时间(秒)
EOF# 设置正确权限
chmod 600 ~/.ssh/config

6. 常见问题

  1. SSH 服务未启动

    bash

    # 启动 SSH 服务(Ubuntu/Debian)
    sudo systemctl start sshd
    sudo systemctl enable sshd  # 开机自启# 启动 SSH 服务(CentOS/RHEL)
    sudo service sshd start
    sudo chkconfig sshd on  # 开机自启
    
  2. 权限问题

    bash

    # 确保 .ssh 目录和文件权限正确
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  3. 防火墙限制

    bash

    # 开放 SSH 端口(Ubuntu/Debian)
    sudo ufw allow 22# 开放 SSH 端口(CentOS/RHEL)
    sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
    sudo firewall-cmd --reload
    

7. 进阶:从节点间的免密登录

若需要从节点之间也能免密通信(如 YARN 调度),需在 每个从节点 重复步骤 2~4,生成各自的密钥对并互相分发。

配置完成后,Hadoop 集群各节点间可通过 SSH 无密码通信,确保 start-all.shstop-all.sh 等脚本能正常执行。

相关文章:

  • VM中 ubuntu 网卡不显示
  • 大核极坐标码
  • 滑动窗口/单调队列
  • 告别数据僵尸!Redis实现自动清理过期键值对
  • Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
  • Git 用法总结
  • [Git]ssh模式每次提交都要输入密码
  • 【AutoGen革命】多智能体协作系统的架构设计与工程实践
  • Java后端文件类型检测(防伪造)
  • C++.Windows图形
  • DVWA靶场保姆级通关教程--07SQL注入下
  • Open CASCADE学习|由大量Edge构建闭合Wire:有序与无序处理的完整解析
  • Java SE所需工具与常见类型和运算符介绍
  • SWMM在城市排水防涝规划中的实战应用:模型校准、情景模拟与工程决策
  • TCPIP详解 卷1协议 七 防火墙和网络地址转换
  • vue3+three 搭建平面上滚动旋转的几何体
  • 第一章 应急响应-webshell查杀
  • 无线定位之 二 SX1302 网关源码 thread_down 线程详解
  • RAGFlow 初步尝试 (01)
  • Leetcode (力扣)做题记录 hot100(34,215,912,121)
  • 体坛联播|安切洛蒂执掌巴西男足,字母哥尝试离开雄鹿
  • 中医的千年传承:网络科学描绘其演化之路|PNAS速递
  • 广西壮族自治区党委政法委副书记李文博接受审查调查
  • 2024年度全国秋粮收购达3.45亿吨
  • 美国再工业化进程需要中国的产业支持
  • 普京提议于15日在土耳其恢复俄乌直接谈判