目录
(1)问题:Permission denied (publickey,password)
一、Hadoop(Ubuntu系统)
1.启动
(1)问题:Permission denied (publickey,password)
此处问题在于公钥,未设置免密登录,致使发生无权访问的问题,设置好后即可成功启动。
测试ssh登录本机:
ssh localhost
显示:
这说明ssh登录本机时仍需要密码,未能实现免密登录。
设置免密登录,首先生成SSH密钥对。
选择一:使用自动生成的密钥(使用rsa) [1]
ssh-keygen -t rsa
解释:这个命令生成了一个RSA密钥对。 `-t rsa` 指定使用RSA算法生成密钥。
运行后在出现的文字交互界面一直回车或输入yes即可。
选择二:自定义空密钥
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
解释:这个命令生成了一个RSA密钥对。 `-t rsa` 指定使用RSA算法生成密钥,`-P ''` 设置密钥的密码为空,`-f ~/.ssh/id_rsa` 指定了生成的密钥文件的路径和名称。
运行后在出现的文字交互界面一直回车或输入yes即可。
然后将公钥追加到authorized_keys文件中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
解释:这个命令将生成的公钥(`id_rsa.pub`)追加到`authorized_keys`文件中。`cat`命令用于将公钥文件的内容输出,`>>`符号用于将输出内容追加到`authorized_keys`文件中。
以上操作目的是生成一对公钥和私钥,并将公钥添加到‘authorized_keys’文件中,以实现无密码的SSH连接。
再次测试ssh登录本机:(代码见初次测试)
仍需要输入密码,因为如图显示上传的私钥文件的权限是 664(rw-rw-r--) ,太开放了,需要修改下文件权限。
将authorized_keys文件权限更改为600:
chmod 600 authorized_keys
再次测试ssh登录本机:(代码见初次测试)
此时已经实现ssh免密登录。
再次尝试启动Hadoop:
start-dfs.sh
或 [2]
start-all.sh
Hadoop已经正常启动:
使用jps查看状态:
jps
Hadoop启动成功,问题解决。
[1] ssh7.0后关闭了dsa的密码验证方式,可改用rsa生成密钥。DSA是对称加密算法,采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密。RSA是非对称加密算法,采用双钥密码系统的加密方法,在一个过程中使用两个密钥,一个用于加密,另一个用于解密。也称为公钥加密,因为一个密钥是公开的,另一个则需要保密。
[2] 要配置好yarn后才能使用start-all.sh。start-dfs.sh 只启动namenode 和datanode, start-all.sh还包括yarn的resourcemanager 和nodemanager。
2023.12.20
初稿