当前位置:   article > 正文

启动Hadoop集群遇到Permission denied (publickey,password)问题的解决方法_hadoop permission denied

hadoop permission denied

环境说明

Ubuntu 20.04

问题定义

Permission denied (publickey,password)

问题本质

该集群的机器之间禁用了ssh密码登录权限

出现场景

ssh密码权限问题很多场景会出现,本例主要针对hadoop集群安装好后,使用start-all.sh命令启动集群时出现的ssh问题。

在master主机调用start-all.sh启动集群时需要与多台slave主机通信,但没有实现ssh免密,所以报错。

解决方法

解决方法网上一搜一大把,基本是有两种方法,第一种只会影响到本用户所处的环境,第二种会影响到整个根目录(因为要修改/etc目录下的文件)

百度上搜到的答案同质化比较严重(基本是sshkey),谷歌上搜到的答案存在越扯越远脱离原问题的不足,也可能是因为大佬不屑于用简单的方法解决问题。

这里介绍的还是sshkey方法

操作步骤

首先会遇到很多教程没说明的两个坑(如果没有请无视该条)

家目录~下没有.ssh隐藏文件夹

使用 ssh localhost 命令登录一下本机,就能自动创建出.ssh文件

.ssh文件夹里没有authorized_keys文件

直接touch authorized_keys创建即可

(注意每台master和slave机器都要保证有.ssh和authorized_keys)

在master机器上,执行下行命令来生成密钥

 ssh-keygen -t rsa
  • 1

此时会弹出几次提示语句:

第一次是自定义保存密钥的文件名,什么都不填继续回车就代表默认生成文件名为id_rsa

第二次是自定义一个密码,该密码用在哪里本例不需要,所以直接回车,默认无密码就行

第三次是再确认一次刚刚设置的密码,继续直接回车

执行完毕后会在~/.ssh目录下生成id_rsaid_rsa.pub文件

执行下面命令将该密钥文件导入本机的已认证密码集中

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  • 1

然后赋予权限以让密钥可用

chmod 600 ~/.ssh/authorized_keys
  • 1
chmod 700 ~/.ssh
  • 1

将上一步生成的id_rsa.pub文件拷贝到其他slave机器上:

scp ~/.ssh/id_rsa.pub xxx@ip:/home/xxx/.ssh
  • 1

登录到每一台slave机器,执行与第2步中类似的命令:

 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  • 1
 chmod 600 ~/.ssh/authorized_keys
  • 1
chmod 700 ~/.ssh
  • 1

完成以上几步后,没出什么问题的话,master与slave之间的ssh免密登录就完成了。

启动集群测试,如果还遇到问题,一般是别的地方有bug,检查一下hadoop那些配置文件写得对不对,core-site.xmlhdfs-site.xml等,主机名、ip地址是否写对,端口号是否出现冲突等。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/638834
推荐阅读
相关标签
  

闽ICP备14008679号