0


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

环境说明

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

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

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

id_rsa

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

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

执行完毕后会在

~/.ssh

目录下生成

id_rsa

id_rsa.pub

文件

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

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

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

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

将上一步生成的

id_rsa.pub

文件拷贝到其他slave机器上:

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

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

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

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

启动集群测试,如果还遇到问题,一般是别的地方有bug,检查一下hadoop那些配置文件写得对不对,

core-site.xml

hdfs-site.xml

等,主机名、ip地址是否写对,端口号是否出现冲突等。

标签: hadoop ssh 大数据

本文转载自: https://blog.csdn.net/BrightMoons/article/details/127998627
版权归原作者 BrightMoons 所有, 如有侵权,请联系我们删除。

“启动Hadoop集群遇到Permission denied (publickey,password)问题的解决方法”的评论:

还没有评论