You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Grid5000集群执行start-dfs.sh遇权限拒绝问题求助

解决Grid5000环境下Hadoop启动SSH权限拒绝问题

1. 修复SSH密钥与授权文件的权限

Grid5000对文件权限要求严格,错误权限会直接导致公钥认证失效,执行以下命令统一修复:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_rsa

2. 确保公钥同步到所有Hadoop节点

手动SSH跳转有效不代表所有节点的授权文件都正确配置,需批量同步并验证:

  • 批量同步公钥到所有节点(替换[其他节点]为你的集群节点列表):
    for node in parasilo-1 parasilo-10 [其他节点]; do
      cat ~/.ssh/id_rsa.pub | ssh $node 'cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh'
    done
    
  • 逐个验证无密码登录,包括本地节点(Hadoop启动时会访问localhost):
    ssh parasilo-10 "echo 登录成功"
    ssh parasilo-1 "echo 本地登录成功"
    

3. 检查Hadoop的SSH配置与节点列表

  • 打开hadoop-3.3.4/etc/hadoop/hadoop-env.sh,确认SSH参数无错误限制:
    # 确保没有强制密码认证的参数,添加跳过主机密钥检查(可选)
    export HADOOP_SSH_OPTS="-o StrictHostKeyChecking=no"
    
  • 检查workers文件(旧版本为slaves),确保节点名和你能SSH的主机名完全一致(Grid5000部分节点可能需要完整域名)。

4. 模拟Hadoop的SSH调用测试

直接用Hadoop自带的SSH命令测试,复现启动时的调用逻辑:

./hadoop/hadoop-3.3.4/bin/hadoop ssh parasilo-10 "echo Hadoop SSH调用测试"

如果此命令失败,说明Hadoop的SSH环境变量配置有问题,需重点排查hadoop-env.sh。

5. Grid5000特殊环境适配

Grid5000节点可能存在home目录缓存问题,可尝试:

  • 在每个节点上重新加载密钥:
    ssh $node 'eval `ssh-agent` && ssh-add ~/.ssh/id_rsa'
    
  • 确认节点SSH服务允许公钥认证:
    ssh $node "grep PubkeyAuthentication /etc/ssh/sshd_config"
    
    输出应为PubkeyAuthentication yes,若不是需联系Grid5000管理员调整。

内容的提问来源于stack exchange,提问作者Remi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 20:55:59