当前位置: 首页 > 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 等脚本能正常执行。

http://www.xdnf.cn/news/414847.html

相关文章:

  • dfs第二次加训 详细题解 下
  • STM32G474VET6-CAN FD使用经典模式+过滤报文ID
  • ESOP系统如何帮助玩具工厂实现生产数据实时展示
  • rufus+Ubuntu 18.04 镜像
  • Promise/A+ 规范中文解读
  • Matlab基于PSO-MVMD粒子群算法优化多元变分模态分解
  • 【C语言指针超详解(五)】--回调函数,qsort函数的理解和使用,qsort函数的模拟实现
  • 类神经网络训练失败怎么办?
  • 中央处理器(CPU)(概述、指令周期)
  • 阿里云服务器核心用途解析:从基础应用到行业创新​
  • c++刷题便捷函数(类似于stoi的小函数)
  • 超越合并速度(merge speed):AI如何重塑开发者协作
  • Hadoop集群的常用命令
  • axi uart 16550 ip core使用流程
  • 一、HAL库的设计理念详解:从架构到实践
  • 274、H指数
  • StringBuilder,StringJoiner,StringBuffer字符串处理类深度解析
  • 从零到精通:GoFrame 的 garray 模块深度解析与实战经验分享
  • Nacos源码—8.Nacos升级gRPC分析五
  • 【K8S学习之生命周期钩子】详细了解 postStart 和 preStop 生命周期钩子
  • 【日撸 Java 三百行】Day 13(链表)
  • 【AIGC梦幻婚纱美学】:白纱与花卉的浪漫算法融合
  • 2025-5-12 底部埋伏记录
  • Matlab 基于GUI的图像去雾技术GlobalHisteq、LocalHisteq和Retinex
  • 基于世界土壤数据库(HWSD)的中国土壤数据集(v1.1)(2009)
  • 大核极坐标码
  • vulhub-Stapler
  • 耀圣-高温釜进料口气动耐磨切断球阀:高粘度、高腐蚀颗粒介质的终极进料解决方案
  • DeepSeek | AI需求分析
  • 手机电池健康提示怎么看?